51 lines
2.4 KiB
Plaintext
51 lines
2.4 KiB
Plaintext
BEGIN
|
|
MODE SSMODES = UNION(SHORT SHORT BITS, SHORT SHORT BYTES, #SHORT SHORT CHAR,#
|
|
SHORT SHORT INT, SHORT SHORT REAL, SHORT SHORT COMPL);
|
|
MODE SMODES = UNION(SHORT BITS, SHORT BYTES, #SHORT CHAR,#
|
|
SHORT INT, SHORT REAL, SHORT COMPL);
|
|
MODE NMODES = UNION(BITS, BYTES, CHAR, INT, REAL, COMPL);
|
|
MODE LMODES = UNION(LONG BITS, LONG BYTES, #LONG CHAR,#
|
|
LONG INT, LONG REAL, LONG COMPL);
|
|
MODE LLMODES = UNION(LONG LONG BITS, LONG LONG BYTES, #LONG LONG CHAR,#
|
|
LONG LONG INT, LONG LONG REAL, LONG LONG COMPL);
|
|
MODE XMODES = UNION(BOOL, SEMA, STRING, VOID, CHANNEL, FILE, FORMAT);
|
|
|
|
MODE MODES = UNION(SSMODES, SMODES, NMODES, LLMODES, LMODES, XMODES);
|
|
|
|
OP REPRTYPEOF = (MODES val)STRING:
|
|
CASE val IN
|
|
(VOID):"VOID",
|
|
(INT):"INT",(SHORT INT):"SHORT INT",(SHORT SHORT INT):"SHORT SHORT INT",
|
|
(LONG INT):"LONG INT",(LONG LONG INT):"LONG LONG INT",
|
|
(REAL):"REAL",(SHORT REAL):"SHORT REAL",(SHORT SHORT REAL):"SHORT SHORT REAL",
|
|
(LONG REAL):"LONG REAL",(LONG LONG REAL):"LONG LONG REAL",
|
|
(COMPL):"COMPL",(SHORT COMPL):"SHORT COMPL",(SHORT SHORT COMPL):"SHORT SHORT COMPL",
|
|
(LONG COMPL):"LONG COMPL",(LONG LONG COMPL):"LONG LONG COMPL",
|
|
(BITS):"BITS",(SHORT BITS):"SHORT BITS",(SHORT SHORT BITS):"SHORT SHORT BITS",
|
|
(LONG BITS):"LONG BITS",(LONG LONG BITS):"LONG LONG BITS",
|
|
(BYTES):"BYTES",(SHORT BYTES):"SHORT BYTES",(SHORT SHORT BYTES):"SHORT SHORT BYTES",
|
|
(LONG BYTES):"LONG BYTES",(LONG LONG BYTES):"LONG LONG BYTES",
|
|
(CHAR):"CHAR",#(SHORT CHAR):"SHORT CHAR",(SHORT SHORT CHAR):"SHORT SHORT CHAR",
|
|
(LONG CHAR):"LONG CHAR",(LONG LONG CHAR):"LONG LONG CHAR",#
|
|
(BOOL):"BOOL",
|
|
(STRING):"STRING",
|
|
(SEMA):"SEMA",
|
|
(CHANNEL):"CHANNEL",
|
|
(FILE):"FILE",
|
|
(FORMAT):"FORMAT"
|
|
OUT
|
|
"ARRAY, PROC or STRUCT"
|
|
ESAC;
|
|
|
|
[]MODES x = (EMPTY, 1, 2.0, 3I4, SHORT SHORT 5, SHORT 6, LONG 7, LONG LONG 8,
|
|
8r666, bytes pack("abc"), TRUE, "xyz", LEVEL 1,
|
|
stand in channel, stand in, $ddd$);
|
|
|
|
STRING sep := "";
|
|
print(("Array member types: "));
|
|
FOR i TO UPB x DO
|
|
print((sep,REPRTYPEOF x[i]));
|
|
sep := ", "
|
|
OD
|
|
END
|