Alternate string literal syntax (with mixins)?
janderson
askme at me.com
Thu Feb 15 21:47:40 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);
Just a thought what about keeping this in the same spirit of D's other
string prefixes. ie
char[] string = l"
";
I do like the label idea suggested before:
Perhaps:
char[] string = :something"
":something;
Which would work with the other postfixes:
char[] string = r:something"
"d:something;
And you could also choose not to label it:
char[] string = :"
":;
Best of all worlds.
-Joel
More information about the Digitalmars-d
mailing list