SELECT entry.class
FROM
boolean,
cardinal,
integer,
longCardinal,
longInteger,
string,
unspecified => {
IO.PutF[aux, Nest["", 1]];
IO.PutF[aux, "Expose%g: PROC [p: %g, level: NAT] RETURNS [x: ROPE];",
IO.rope[item],
IO.rope[item]
];
IO.PutF[aux, Nest["", 1]];
};
array => {
IO.PutF[aux, Nest["", 1]];
IO.PutF[aux, "Expose%g: PROC [a: %g, level: NAT] RETURNS [x: ROPE];",
IO.rope[item],
IO.rope[item]
];
IO.PutF[aux, Nest["", 1]];
};
choice => {
IO.PutF[aux, Nest["", 1]];
IO.PutF[aux, "Expose%g: PROC [c: %g, level: NAT] RETURNS [x: ROPE];",
IO.rope[item],
IO.rope[item]
];
IO.PutF[aux, Nest["", 1]];
};
enumeration => {
IO.PutF[aux, Nest["", 1]];
IO.PutF[aux, "Expose%g: PROC [e: %g, level: NAT] RETURNS [x: ROPE];",
IO.rope[item],
IO.rope[item]
];
IO.PutF[aux, Nest["", 1]];
};
record => {
fieldList: CComponent ← entry.children;
Handle Empty Record as a special case because of compiler bug
IF (fieldList =
NIL)
THEN {
IO.PutF[aux, Nest["", 1]];
IO.PutF[aux, "Expose%g: PROC [--r: %g,-- level: NAT] RETURNS [x: ROPE];",
IO.rope[item],
IO.rope[item]
];
IO.PutF[aux, Nest["", 1]];
RETURN;
};
IO.PutF[aux, Nest["", 1]];
IO.PutF[aux, "Expose%g: PROC [r: %g, level: NAT] RETURNS [x: ROPE];",
IO.rope[item],
IO.rope[item]
];
IO.PutF[aux, Nest["", 1]];
};
sequence => {
IO.PutF[aux, Nest["", 1]];
IO.PutF[aux, "Expose%g: PROC [s: %g, level: NAT] RETURNS [x: ROPE];",
IO.rope[item],
IO.rope[item]
];
IO.PutF[aux, Nest["", 1]];
};
error => { NULL }; -- always a constant!
procedure => { NULL }; -- always a constant!