On Tue, Sep 23, 2014 at 10:15 AM, 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.
>

Well, I started writing Regexes for parsing some flat file content.
Quickly turned into a harder than needed way.
Moved to PP and things are now crystal clear. Give it a shot, it is really
powerful and easy to write once you get the hang of it.

Phil

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