Marcos Douglas wrote 37 lines
On Sat, Feb 27, 2016 at 6:38 AM, Mark Morgan Lloyd
wrote:
> Marcos Douglas wrote:
>> Is there any chance to implement in the compiler something link this?
>>
>> S := "
>> insert into t (
>> id, description
>> ) values (
>> 1, 'foo'
>> )
>> ";
>>
>> Did you see?
>
> No, I don't see. It looks like an ordinary string to me, except that you're
> allowing it to extend over multiple lines somewhat like a unix
> here-document.
Here are the differences:
This:
S := "
insert into t (
id, description
) values (
1, 'foo'
)
";
instead of this:
S :=
'insert into t ( ' +
' id, description ' +
') values ( ' +
' 1, ''foo'' ' +
')';
A better solution would be a variant of Format() that could define repeated or indeterminate parameters, and that possibly allowed C-style backslash escapes. In any case, looking at your usage case it's very common to have inline variables, and again they'd be better handled by Format.
Expecting somebody to rewrite the parser is probably not realistic, and in any event there's probably better things to do with double-quotes (e.g. modified semantics for Unicode).
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk
[Opinions above are the author's, not those of his employers or colleagues]