Why Ruby?

Stephan Soller stephan.soller at helionweb.de
Fri Dec 17 08:32:27 PST 2010


On 16.12.2010 23:33, Alex_Dovhal wrote:
> "Andrej Mitrovic"<andrej.mitrovich at gmail.com>  wrote:
>> The cool thing about D is that with a little bit of string magic you
>> can make your own DSL's. Here's a rather hardcoded and superficial
>> example, but for this simple case it works:
>>
>> http://pastebin.com/Xkghv1ky
>>
>> Of course you'd need to build your own little DSL string parsing
>> functions and use regex instead of hardcoding it like that. But all
>> kinds of syntaxes are possible.
>
> You are right. I tried making one. It parses things like sum !(q{  i=0:10;
> i * sum!(q{   j=0:10, j!=i;    i*j   })  })
> http://pastebin.com/mQaKXaYY -
> But it doesn't work because not being CTFE friendly, and also syntax parser
> is ugly because I am not strong at syntax parsing.
> Note that creating good syntax parser in CTFE is rather hard, especially for
> complex syntaxes like of D expressions.
> Oh, if CTFE could:
>   1) run external process
>   2) do file i/o
>   3) use dynamic libraries
> This would be much much simpler, but I guess it will not.
> This features also has safety issues, but D is system language, not browser
> one.
>
>

I don't think that the syntax improvement of chaining is worth such an 
effort. It adds tons of complexity for only a very limited gain. I'm not 
sure if I could write such self-parsed code without thinking about that 
pipeline.


More information about the Digitalmars-d mailing list