This appendix gives the translations of all the tokens made by GENERIC for each of the data types. If a translation is illegal, the result will be “?” (and GENERIC will give a warning message).
Additional substitutions are made if the input file is a C source file, described in Appendix A.
To produce the BYTE version of a program, the following substitutions are made.
Kernel tokens (translated by default):
| ||
TOKEN | SUBSTITUTE | COMMENT |
T | "B" | Subroutine name extension |
TYPE | "BYTE" | Argument type definition |
LTYPE | "BYTE" | Local type definition |
CONST | " " | String to be appended to constant |
HTYPE | "_BYTE" | HDS type |
COMM | "BYTE" | Comment describing type |
ASTERIX tokens (translated when
-a is specified): | ||
TOKEN | SUBSTITUTE | COMMENT |
CONV | " " | BYTE to REAL conversion |
EXT | " " | BYTE to REAL conversion extension |
BRAK | " " | Brackets for BYTE to REAL conversion |
ICONV | " " | BYTE to INTEGER conversion |
IEXT | " " | BYTE to INTEGER conversion extension |
IBRAK | " " | Brackets for BYTE to INTEGER conversion |
REV | " " | REAL to BYTE conversion |
RVBRAK | " " | Brackets for REAL to BYTE conversion |
IREV | " " | INTEGER to BYTE conversion |
IRVBRAK | " " | Brackets for INTEGER to BYTE conversion |
To produce the UNSIGNED BYTE version of a program, the following substitutions are made.
Kernel tokens (translated by default):
| ||
TOKEN | SUBSTITUTE | COMMENT |
T | "UB" | Subroutine name extension |
TYPE | "BYTE" | Argument type definition |
LTYPE | "BYTE" | Local type definition |
CONST | " " | String to be appended to constant |
HTYPE | "_UBYTE" | HDS type |
COMM | "UNSIGNED BYTE" | Comment describing type |
ASTERIX tokens (translated when
-a is specified): | ||
TOKEN | SUBSTITUTE | COMMENT |
CONV | "REAL(" | UNSIGNED BYTE to REAL conversion |
EXT | "ZEXT(" | UNSIGNED BYTE to REAL conversion extension |
BRAK | "))" | Brackets for UNSIGNED BYTE to REAL conversion |
ICONV | "INT(" | UNSIGNED BYTE to INTEGER conversion |
IEXT | "ZEXT(" | UNSIGNED BYTE to INTEGER conversion extension |
IBRAK | "))" | Brackets for UNSIGNED BYTE to INTEGER conversion |
REV | "NINT(" | REAL to UNSIGNED BYTE conversion |
RVBRAK | ")" | Brackets for REAL to UNSIGNED BYTE conversion |
IREV | " " | INTEGER to UNSIGNED BYTE conversion |
IRVBRAK | " " | Brackets for INTEGER to UNSIGNED BYTE conversion |
To produce the CHARACTER version of a program, the following substitutions are made.
Kernel tokens (translated by default):
| ||
TOKEN | SUBSTITUTE | COMMENT |
T | "C" | Subroutine name extension |
TYPE | "CHARACTER*(*)" | Argument type definition |
LTYPE | "CHARACTER*CHASIZ" | Local type definition (CHASIZ = 200 by default) |
CONST | "?" | String to be appended to constant |
HTYPE | "_CHAR" | HDS type |
COMM | "CHARACTER" | Comment describing type |
ASTERIX tokens (translated when
-a is specified): | ||
TOKEN | SUBSTITUTE | COMMENT |
CONV | "?" | CHARACTER to REAL conversion |
EXT | "?" | CHARACTER to REAL conversion extension |
BRAK | "?" | Brackets for CHARACTER to REAL conversion |
ICONV | "?" | CHARACTER to INTEGER conversion |
IEXT | "?" | CHARACTER to INTEGER conversion extension |
IBRAK | "?" | Brackets for CHARACTER to INTEGER conversion |
REV | "?" | REAL to CHARACTER conversion |
RVBRAK | "?" | Brackets for REAL to CHARACTER conversion |
IREV | "?" | INTEGER to CHARACTER conversion |
IRVBRAK | "?" | Brackets for INTEGER to CHARACTER conversion |
To produce the DOUBLE PRECISION version of a program, the following substitutions are made.
Kernel tokens (translated by default):
| ||
TOKEN | SUBSTITUTE | COMMENT |
T | "D" | Subroutine name extension |
TYPE | "DOUBLE PRECISION" | Argument type definition |
LTYPE | "DOUBLE PRECISION" | Local type definition |
CONST | ".0D0" | String to be appended to constant |
HTYPE | "_DOUBLE" | HDS type |
COMM | "DOUBLE PRECISION" | Comment describing type |
ASTERIX tokens (translated when
-a is specified): | ||
TOKEN | SUBSTITUTE | COMMENT |
CONV | "SNGL(" | DOUBLE PRECISION to REAL conversion |
EXT | " " | DOUBLE PRECISION to REAL conversion extension |
BRAK | ")" | Brackets for DOUBLE PRECISION to REAL conversion |
ICONV | "NINT(" | DOUBLE PRECISION to INTEGER conversion |
IEXT | " " | DOUBLE PRECISION to INTEGER conversion extension |
IBRAK | ")" | Brackets for DOUBLE PRECISION to INTEGER conversion |
REV | "DBLE(" | REAL to DOUBLE PRECISION conversion |
RVBRAK | ")" | Brackets for REAL to DOUBLE PRECISION conversion |
IREV | "DBLE(" | INTEGER to DOUBLE PRECISION conversion |
IRVBRAK | ")" | Brackets for INTEGER to DOUBLE PRECISION conversion |
To produce the INTEGER version of a program, the following substitutions are made.
Kernel tokens (translated by default):
| ||
TOKEN | SUBSTITUTE | COMMENT |
T | "I" | Subroutine name extension |
TYPE | "INTEGER" | Argument type definition |
LTYPE | "INTEGER" | Local type definition |
CONST | " " | String to be appended to constant |
HTYPE | "_INTEGER" | HDS type |
COMM | "INTEGER" | Comment describing type |
ASTERIX tokens (translated when
-a is specified). | ||
TOKEN | SUBSTITUTE | COMMENT |
CONV | "REAL(" | INTEGER to REAL conversion |
EXT | " " | INTEGER to REAL conversion extension |
BRAK | ")" | Brackets for INTEGER to REAL conversion |
ICONV | " " | INTEGER to INTEGER conversion |
IEXT | " " | INTEGER to INTEGER conversion extension |
IBRAK | " " | Brackets for INTEGER to INTEGER conversion |
REV | "NINT(" | REAL to INTEGER conversion |
RVBRAK | ")" | Brackets for REAL to INTEGER conversion |
IREV | " " | INTEGER to INTEGER conversion |
IRVBRAK | " " | Brackets for INTEGER to INTEGER conversion |
To produce the LOGICAL version of a program, the following substitutions are made.
Kernel tokens (translated by default):
| ||
TOKEN | SUBSTITUTE | COMMENT |
T | "L" | Subroutine name extension |
TYPE | "LOGICAL" | Argument type definition |
LTYPE | "LOGICAL" | Local type definition |
CONST | " " | String to be appended to constant |
HTYPE | "_LOGICAL" | HDS type |
COMM | "LOGICAL" | Comment describing type |
ASTERIX tokens (translated when
-a is specified). | ||
TOKEN | SUBSTITUTE | COMMENT |
CONV | "?" | LOGICAL to REAL conversion |
EXT | "?" | LOGICAL to REAL conversion extension |
BRAK | "?" | Brackets for LOGICAL to REAL conversion |
ICONV | "?" | LOGICAL to INTEGER conversion |
IEXT | "?" | LOGICAL to INTEGER conversion extension |
IBRAK | "?" | Brackets for LOGICAL to INTEGER conversion |
REV | "?" | REAL to LOGICAL conversion |
RVBRAK | "?" | Brackets for REAL to LOGICAL conversion |
IREV | "?" | INTEGER to LOGICAL conversion |
IRVBRAK | "?" | Brackets for INTEGER to LOGICAL conversion |
To produce the REAL version of a program, the following substitutions are made.
Kernel tokens (translated by default):
| ||
TOKEN | SUBSTITUTE | COMMENT |
T | "R" | Subroutine name extension |
TYPE | "REAL" | Argument type definition |
LTYPE | "REAL" | Local type definition |
CONST | ".0E0" | String to be appended to constant |
HTYPE | "_REAL" | HDS type |
COMM | "REAL" | Comment describing type |
ASTERIX tokens (translated when
-a is specified). | ||
TOKEN | SUBSTITUTE | COMMENT |
CONV | " " | REAL to REAL conversion |
EXT | " " | REAL to REAL conversion extension |
BRAK | " " | Brackets for REAL to REAL conversion |
ICONV | "NINT(" | REAL to INTEGER conversion |
IEXT | " " | REAL to INTEGER conversion extension |
IBRAK | ")" | Brackets for REAL to INTEGER conversion |
REV | " " | REAL to REAL conversion |
RVBRAK | " " | Brackets for REAL to REAL conversion |
IREV | "REAL(" | INTEGER to REAL conversion |
IRVBRAK | ")" | Brackets for INTEGER to REAL conversion |
To produce the WORD version of a program, the following substitutions are made.
Kernel tokens (translated by default):
| ||
TOKEN | SUBSTITUTE | COMMENT |
T | "W" | Subroutine name extension |
TYPE | "INTEGER*2" | Argument type definition |
LTYPE | "INTEGER*2" | Local type definition |
CONST | " " | String to be appended to constant |
HTYPE | "_WORD" | HDS type |
COMM | "WORD" | Comment describing type |
ASTERIX tokens (translated when
-a is specified). | ||
TOKEN | SUBSTITUTE | COMMENT |
CONV | "REAL(" | WORD to REAL conversion |
EXT | " " | WORD to REAL conversion extension |
BRAK | ")" | Brackets for WORD to REAL conversion |
ICONV | " " | WORD to INTEGER conversion |
IEXT | " " | WORD to INTEGER conversion extension |
IBRAK | " " | Brackets for WORD to INTEGER conversion |
REV | "NINT(" | REAL to WORD conversion |
RVBRAK | ")" | Brackets for REAL to WORD conversion |
IREV | " " | INTEGER to WORD conversion |
IRVBRAK | " " | Brackets for INTEGER to WORD conversion |
To produce the UNSIGNED WORD version of a program, the following substitutions are made.
Kernel tokens (translated by default):
| ||
TOKEN | SUBSTITUTE | COMMENT |
T | "UW" | Subroutine name extension |
TYPE | "INTEGER*2" | Argument type definition |
LTYPE | "INTEGER*2" | Local type definition |
CONST | " " | String to be appended to constant |
HTYPE | "_UWORD" | HDS type |
COMM | "UNSIGNED WORD" | Comment describing type |
ASTERIX tokens (translated when
-a is specified). | ||
TOKEN | SUBSTITUTE | COMMENT |
CONV | "REAL(" | UNSIGNED WORD to REAL conversion |
EXT | "ZEXT(" | UNSIGNED WORD to REAL conversion extension |
BRAK | "))" | Brackets for UNSIGNED WORD to REAL conversion |
ICONV | " " | UNSIGNED WORD to INTEGER conversion |
IEXT | "ZEXT(" | UNSIGNED WORD to INTEGER conversion extension |
IBRAK | ")" | Brackets for UNSIGNED WORD to INTEGER conversion |
REV | "NINT(" | REAL to UNSIGNED WORD conversion |
RVBRAK | ")" | Brackets for REAL to UNSIGNED WORD conversion |
IREV | " " | INTEGER to UNSIGNED WORD conversion |
IRVBRAK | " " | Brackets for INTEGER to UNSIGNED WORD conversion |