Hi,
finally I think I've fixed this bug, it required an overhaul of the
variant code. The changes have also tidied up some uncleanness.
Anyway it would be interesting to hear if the compiler builds on
cygwin, solaris, OSX now
regards,
Gaius
* gm2/gm2-compiler/M2CaseList.mod: tidied up formatting of
error message.
* gm2/gm2-compiler/M2GCCDeclare.mod: IncludeGetParent (New
function). Use IncludeGetParent with appropriate symbols.
* gm2/gm2-compiler/M2Quads.mod: use GetParent and GetRecord
together now that the specification for GetParent has
changed.
* gm2/gm2-compiler/P2SymBuild.mod: GetParent now returns the
parent of the field or variant. GetRecord returns the
record of variant. PutFieldRecord returns the field created
so that it can be recorded as the tag via PutVariantTag if
neccesary. Modified BuildFieldRecord,
BuildVariantSelector, StartBuildVariantFieldRecord and
EndBuildVariantFieldRecord.
* gm2/gm2-compiler/SymbolTable.def: export GetRecord.
* gm2/gm2-compiler/SymbolTable.mod: GetParent now returns
the parent of the field or variant. GetRecord returns the
record of variant. PutFieldRecord returns the field created
so that it can be recorded as the tag via PutVariantTag if
neccesary. EnsureOrder (New function) used by
PutVariantTag.
* gm2/ulm-lib-gm2/std/RTErrors.def: include two ELSE clauses.
* gm2/ulm-lib-gm2/std/TimeIO.mod: include ELSE clause.