; 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