IFND REXX_STORAGE_I REXX_STORAGE_I SET 1 ** ** $VER: storage.i 47.1 (3.8.2019) ** ** Header file to define ARexx data structures. ** ** Copyright (C) 2019 Hyperion Entertainment CVBA. ** Developed under license. ** IFND EXEC_TYPES_I INCLUDE "exec/types.i" ENDC IFND EXEC_NODES_I INCLUDE "exec/nodes.i" ENDC IFND EXEC_LISTS_I INCLUDE "exec/lists.i" ENDC IFND EXEC_PORTS_I INCLUDE "exec/ports.i" ENDC IFND EXEC_LIBRARIES_I INCLUDE "exec/libraries.i" ENDC * The NexxStr structure is used to maintain the internal strings in REXX. * It includes the buffer area for the string and associated attributes. * This is actually a variable-length structure; it is allocated for a * specific length string, and the length is never modified thereafter * (since it's used for recycling). STRUCTURE NexxStr,0 LONG ns_Ivalue ; integer value UWORD ns_Length ; length in bytes (excl null byte) UBYTE ns_Flags ; attribute flags UBYTE ns_Hash ; sum-of-characters hash code STRUCT ns_Buff,8 ; buffer area for strings LABEL NSMINSIZE ; 16 bytes (minimum) NXADDLEN EQU ns_Buff+1 ; structure offset plus null byte IVALUE EQU ns_Ivalue ; integer value * String attribute flag bit definitions NSB_KEEP EQU 0 ; permanent string? (in Symbol Table) NSB_STRING EQU 1 ; string form valid? NSB_NOTNUM EQU 2 ; non-numeric? NSB_NUMBER EQU 3 ; a valid number? NSB_BINARY EQU 4 ; integer value saved? NSB_FLOAT EQU 5 ; floating point format? NSB_EXT EQU 6 ; an external string? NSB_SOURCE EQU 7 ; part of the program source? * The flag form of the string attributes NSF_KEEP EQU 1<