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
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
>
>

Reply via email to