Hi Stef,

> We could easily turn your blog into a chapter for a future book :)
Wow! I didn't really expect that! But I'd happy to help any way I can. Maybe by adding some bits an pieces how to parse blocks with multiple expressions? I have that working for a project I'm working on - but it isn't nice enough for an article (yet).

> I have the impression that the blog is how to avoid parsing and still
> get translation done!
Let me put it that way: I love using PetitParser - but sometimes parsing an expression compared to full code is more than enough.

It also has the benefit of blending nicely with regular Smalltalk tools (code, not Strings!) w/o hooking into the compiler - which makes it more portable by default.

So you're right - it provides a "kind of AST" which allows you to reason about some Smalltalk expression w/o relying on a full parser. I'll use it for translating only though...

The limitations of this approach are clear - but if you need more than the tools you'll need are clear and known as well.

CU,

Udo



On 25.09.14 22:06, stepharo wrote:
Hi udo

I agree with sven :)

We could easily turn your blog into a chapter for a future book :)
I have the impression that the blog is how to avoid parsing and still
get translation done!

Stef
Hi Sven,

thanks for the feedback.

> Keep that kind of stuff coming, it is very helpful.
I'll try to. It just always takes so long to write stuff. But I think
you know that, don't you? :-)

CU,

Udo

On 23.09.14 16:00, Sven Van Caekenberghe wrote:
Hi Udo,

This is really an excellent article: I enjoyed reading it a lot.

It is well written, has lots of relevant code examples and a nice
pace, but above all it is really interesting.

Thanks a lot.

Keep that kind of stuff coming, it is very helpful.

Sven

On 23 Sep 2014, at 01:48, Udo Schneider
<udo.schnei...@homeaddress.de> wrote:

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


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