On Thu, Oct 23, 2014 at 9:36 AM, Thierry Goubier <[email protected]> wrote:
> Le 23/10/2014 09:18, [email protected] a écrit : > >> >> On Thu, Oct 23, 2014 at 8:42 AM, Thierry Goubier >> <[email protected] <mailto:[email protected]>> wrote: >> >> >> How long is long? >> > > 900 nodes in the AST seems to be the limit for the type of method SmaCC > generates (cascading ifTrue:ifFalse:). > > Other limits exist (number of literals, for example). Unless you generate > automatically some code, it's hard to hit them. Once you generate > automatically, it's easy to hit them :P > > Now, the point is to see all that as a stream, cut methods at >> appropriate places and compile code under a WAComponent subclass. >> > > Yes. But then you need some kind of syntax to mark the start of a method. > Change sets and dolphin packages use !! markers. > > I don't know about SmaCC but I think I can do something with PetitParser >> and Smalltalk compile: >> > > It's all done with RBParser. Since you're parsing Smalltalk, it's easier > to do it that way (and probably a bit faster). And you're also playing with > the AST, so you want to fall back to a well defined API for that AST (and > visitors, and the like). > > Extending RBParser with a scheme to parse multi-methods files could be > convenient. > > Unless you fall back on a variant of a changeset. Thanks for the pointers, I'll look into that. In the meantime, I put together a starting point (using your merge driver as an inspiration ;-) ). https://github.com/philippeback/Bubble clone it, make ./bubble --app blah.bubble (if one is on centos6.5, make centos) Check the makefile, I made everything load from filetree and rename the image with another name than a bland "Pharo.image" Phil > > Thierry > >
