[fpc-devel] Some thoughts on multi-line string support, and a possible syntax that I think is perfectly clean and Pascal-ish.
Ben Grasset
operator97 at gmail.com
Sat Jul 6 15:56:03 CEST 2019
On Sat, Jul 6, 2019 at 9:10 AM Ryan Joseph <genericptr at gmail.com> wrote:
> Btw, here is the "Illegal expression” error which I mentioned before but
> lost track of.
>
> ==========
>
> {$mode objfpc}
>
> program test;
>
> const lines: ansistring = `
> #version 150
>
> uniform sampler2D textures[8];
> in vec2 vertexTexCoord;
> in vec4 vertexColor;
> in float vertexUVMap;
> out vec4 fragColor;
>
> void main()
> {
> if (vertexUVMap == 255) {
> fragColor = vertexColor;
> } else {
> fragColor = texture(textures[int(vertexUVMap)], vertexTexCoord.st);
> if (vertexColor.a < fragColor.a) {
> fragColor.a = vertexColor.a;
> }
> }
>
> // TODO: testing
> fragColor = vec4(1,0,0,1);
> }
> `;
>
> var
> s: ansistring = lines;
> begin
> writeln(lines);
> end.
>
> Regards,
> Ryan Joseph
>
That really is an illegal expression (I.E. once again expected behavior)
whether multi-line strings are involved or not. The following is equally
invalid:
{$mode objfpc}
program test;
const lines: ansistring = 'just a single line string';
var
s: ansistring = lines;
begin
writeln(lines);
end.
You cannot under any circumstances initialize a variable with a "typed"
constant, because typed constants are themselves mutable by default.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20190706/c4d967c4/attachment.html>
More information about the fpc-devel
mailing list