constinteger Max Bound = 7
recordformat Boundfm(integer Lower, Upper, Mult)
recordformat Afm(integer Dimension,
Total Size,
Zero Displacement,
DV,
Local Frame,
Base,
record(Boundfm)array Bound(1:Max Bound))
constrecord(Afm)name A type == 0 {for NEW}
recordformat Varfm(integer Flags,
byte Base, Prim,
byte Type, Form,
(longreal Rvar or
integer Disp, (integer Extra or record(Afm)name Adata)),
(integer Format or integer Scale),
integer Area)
recordformatspec Stackfm
recordformat Olfm(integer Oper, record(Stackfm)name Link)
recordformat Xfm(integer Xsize, record(Stackfm)name Index)
recordformat Datafm( c
record(Varfm) V,
integer Varno,
record(Varfm)name Fv,
(integer Bias or byte Reg, Label),
record(Stackfm)name Params, Record,
(integer Oper, record(Stackfm)name Link or record(Olfm) Oplink),
(integer Xsize, record(Stackfm)name Index or record(Xfm) X))
recordformat Memberfm(integer Const, Items,
record(Stackfm)name A, B,
record(Memberfm)name Link)
constrecord(Memberfm)name Memberfm Type == 0
recordformat Stackfm( c
record(Varfm) V or
record(Datafm) Data or
integer Flags,
byte Base, Prim,
byte Type, Form,
(longreal Rval or integer Rhigh, Rlow c
or (integer Disp, (integer Extra or record(Afm)name Adata)),
(integer Format or integer Scale),
integer Area,
integer Varno,
(record(Varfm)name Fv or record(Memberfm)name Members),
(integer Bias or byte Reg, Label),
record(Stackfm)name Params, Record,
(integer Oper, record(Stackfm)name Link or record(Olfm) Oplink),
(integer Xsize, record(Stackfm)name Index or record(Xfm) X)),
record(Stackfm)name Using, Stack)
constrecord(Stackfm)name Stackfm Type == 0
begin
record (stackfm) V
routine do(record (stackfm) name V)
write(v_Base, 0)
write(v_Disp, 0)
write(v_Oper, 0)
end
do(V)
endofprogram