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 |