|
- ; names.inc - name-table limits and result codes (E02-S03).
-
- .ifndef NAMES_INC
- NAMES_INC = 1
-
- NAMES_MAX = 255 ; IDs 1..255; 0 means "no name"
- NAMES_BUCKETS = 64 ; hash & (NAMES_BUCKETS - 1)
- NAME_LEN_MAX = 16 ; = LEX_IDENT_MAX
-
- ; Record layout in bank 1 (NAME_REC_SIZE bytes per ID, ID 1 first)
- NAME_NEXT = 0 ; next ID in the bucket chain (0 = end)
- NAME_HASH = 1 ; 8-bit hash of the normalized name
- NAME_LEN = 2
- NAME_FLAGS = 3
- NAME_SPELLING = 4 ; original bytes, NAME_LEN_MAX reserved
- NAME_REC_SIZE = NAME_SPELLING + NAME_LEN_MAX
-
- NAME_F_DECLARED = $01 ; spelling came from a declaration
-
- NAMES_OK = 0
- NAMES_ERR_FULL = 1 ; resource error: NAMES_MAX distinct names
- NAMES_ERR_LONG = 2 ; caller bug: longer than NAME_LEN_MAX
-
- .endif
|