[fpc-pascal] variant part of a record
Jonas Maebe
jonas.maebe at elis.ugent.be
Wed Sep 20 14:28:08 CEST 2006
On 20 sep 2006, at 14:19, Пётр Косаревский wrote:
>> It's on my todo list to implement such checks (when enabled by a
>> command line switch, of course). It's not that easy as it may look at
>> first sight though.
>> Jonas
>
> It's great news!
>
> However, in the case of such checks, ability to explicitly place
> tag variable in the record structure or to place something after
> the variant part (assuming it has the size of the biggest branch)
> would be great too.
To place something after the variant part, simply use nested records:
type
tr1 = record
a, b: longint;
case d: byte of
1: (s: string);
2: (c: char);
end;
tr2 = record
l: longint;
r: tr1;
l2: longint;
end;
Hacking the parser to support this directly is a waste of time imho
(not to mention that it would break the code's compatibility with
every other Pascal compiler out there afaik).
> Implementing "else" seems very logical (does modula-2 perform this
> checks?).
That would be more easily doable than the above, though again it
would break compatibility with other Pascal compilers afaik.
Jonas
More information about the fpc-pascal
mailing list