Alternate string literal syntax (with mixins)?

janderson askme at me.com
Sun Feb 11 13:00:03 PST 2007


Kristian Kilpi wrote:
> 
> String literals with mixins are a bit awkward sometimes (editor 
> highlighting etc).
> 
> Some special marks -- I use @{ }@ here -- could be used to mark a part 
> of a source file as a string literal, just like /* */ marks a part of 
> code as a comment. For example:
> 
>   mixin(
>     @{
>       //this is a string literal block
>       if(...) {
>         ...
>       }
>     }@
>   );
> 
> The @{ }@ marks have a close relation, of course, with quotation marks 
> "". But because there is a starting mark and an ending mark, you can 
> nest them. (And because they are used to mark a part of a file as a 
> string literal, they are not actually the part of the 'working code' 
> just like the "" literals are, if you get what I'm trying to say.)
> 
> E.g.
> 
>   alias @{
>     str = @{ foo }@ ~ @{ bar }@;
>     str ~= "blah";
>     if(...) {
>       ...
>     }
>   }@ MyCode;
> 
>    mixin(MyCode);

It's a good idea.  Whatever the symbols are, they should be nestable and 
should be generic so they can be used for normal strings.

-Joel



More information about the Digitalmars-d mailing list