MarkupBuilder in Groovy uses similar logic #doesNotUnderstand: .. but not debug capable ..!..
On Tue, Sep 23, 2014 at 1:45 PM, kilon alios <kilon.al...@gmail.com> wrote: > it reminds a lot of Kent's Beck Smalltalk Practice Patterns where it > removes all ifs and replaces them with regular unary messages . It is > definitely an elegant way of coding making the code just flow. > > I have not used PettitParser yet, looks powerful but I find it a bit weird > in design. On the other hand regex is quite ugly and understanding complex > regex a pain. > > On Tue, Sep 23, 2014 at 11:07 AM, Udo Schneider < > udo.schnei...@homeaddress.de> wrote: > >> > just as it is black magic for me now :D >> The nice thing about this approach is the fact that it "just" piggybacks >> the normal Smalltalk message sending. So you can step through it using the >> Debugger - it's Smalltalk all the way down. >> >> I still remember my first shock when (having no formal background on >> parsing theory at that time) I saw the parsing tables generated by T-Gen. >> Of course it was Smalltalk ... but understanding those tables was a >> nightmare. >> >> PetitParser is the gold standard here IMHO. It is able to parse arbitrary >> input (compared to my block expressions only). And you can still use the >> Debugger to step through the parsing process *and still understand what's >> going on!* >> >> CU, >> >> Udo >> >> On 23.09.14 09:54, kilon alios wrote: >> >>> just as it is black magic for me now :D >>> >>> At least I get the general feeling. I am new to parsing too, so far I >>> have only played with regex parsing. Not the most smalltalkish way but >>> it works well so far. >>> >>> On Tue, Sep 23, 2014 at 9:39 AM, Udo Schneider >>> <udo.schnei...@homeaddress.de >>> <mailto:udo.schnei...@homeaddress.de>> wrote: >>> >>> Hi Estaban, >>> >>> I think the first time I saw this pattern was in ReStore on Dolphin >>> Smalltalk. I didn't understand it's implementation back then. I >>> assume that it's similar to what I described though. But having a >>> Smalltalk block automagically creating the equivalent SQL SELECT >>> expression was like black magic at that time :-) >>> >>> CU, >>> >>> Udo >>> >>> >>> >>> >>> On 23.09.14 04:15, Esteban A. Maringolo wrote: >>> >>> Excellent article. >>> >>> I think GLORP uses a similar technique to setup its expressions, >>> and >>> also have issues with #and:/#or: selectors due to inlining, so >>> it uses >>> AND:/#OR: instead. >>> >>> Regards! >>> >>> Esteban A. Maringolo >>> >>> pd: Your blog and it's choosen topic made me remember >>> http://use-the-index-luke.com/ >>> >>> 2014-09-22 20:48 GMT-03:00 Udo Schneider >>> <udo.schnei...@homeaddress.de >>> <mailto:udo.schnei...@homeaddress.de>>__: >>> >>> >>> All, >>> >>> I just finished a blog entry. It shows how to use Smalltalk >>> blocks as parsers/translators. E.g. translating a Block >>> >>> [:customer | (customer joinDate year is: Date >>> today year)] >>> >>> into an SQL-like String >>> >>> (YEAR(customers.joinDate) = 2014) >>> >>> The SQL stuff is just an example - you can create nearly any >>> output. >>> >>> Check out >>> http://readthesourceluke.__blogspot.de/2014/09/block-__ >>> translators-parsing-magic.html >>> <http://readthesourceluke.blogspot.de/2014/09/block- >>> translators-parsing-magic.html> >>> >>> Maybe that's old stuff for some of you - but I hope it's >>> interesting for some at least :-) >>> >>> Comments and feedback appreciated. >>> >>> CU, >>> >>> Udo >>> >>> >>> >>> >>> >>> >>> >>> >>> >> >> >> >