{------------------------------------------------------------------------} {--------------------------------------/ \----} {---- ----! definitions for the !----} {---- S Y M T A B . D E F ----! symbol-table version 3.2 !----} {---- ----! (dummy symtab option) !----} {--------------------------------------\ /----} {------------------------------------------------------------------------} CONST table_max = 10000 { max. hash table size (objects) }; err_max = 299 { highest SYMTAB error code }; no_error = 0 { indicates no errors }; schar_min = 00b { lowest SIXBIT character }; schar_max = 77b { highest SIXBIT character }; name_length = 6 { identifier (name) length }; TYPE name_type = PACKED ARRAY [1..name_length] OF schar_min..schar_max; char_name = PACKED ARRAY [1..name_length] OF char; err_type = -1..err_max { possible error codes }; table_index = 0..table_max; word = integer; prop_kind = (p_scalar, p_boolean, p_sequence, p_stack, p_queue, p_set, p_array); hash_table = ^real; object = ^integer; property = ^boolean; order = (s_lt, s_eq, s_gt); {>>>> Initialization & error reporting procedures <<<<} PROCEDURE SymIni; EXTERN; {>>>> General purpose conversion procedures <<<<} FUNCTION StProp ( thing : word) : property; EXTERN; FUNCTION SfProp ( prop : property) : word; EXTERN; FUNCTION StObj ( thing : word) : object; EXTERN; FUNCTION SfObj ( obj : object) : word; EXTERN; FUNCTION StTab ( thing : word) : hash_table; EXTERN; FUNCTION SfTab ( tab : hash_table) : word; EXTERN; FUNCTION StInt ( thing : word) : integer; EXTERN; FUNCTION SfInt ( int : integer) : word; EXTERN; FUNCTION StReal ( thing : word) : real; EXTERN; FUNCTION SfReal ( r : real) : word; EXTERN; FUNCTION StChar ( thing : word) : char; EXTERN; FUNCTION SfChar ( c : char) : word; EXTERN; FUNCTION StBool ( thing : word) : boolean; EXTERN; FUNCTION SfBool ( b : boolean) : word; EXTERN; PROCEDURE StPtr (VAR ptr : pointer; int : word); EXTERN; PROCEDURE SfPtr ( ptr : pointer; VAR int : word); EXTERN; {>>>> Name manipulation procedures <<<<} PROCEDURE Sf6Name ( name : name_type; VAR extnm : char_name); EXTERN; PROCEDURE St6Name (VAR name : name_type; extnm : char_name); EXTERN; PROCEDURE Sf7Name ( name : name_type; VAR extnm : char_name); EXTERN; PROCEDURE St7name (VAR name : name_type; extnm : char_name); EXTERN; FUNCTION SeqNames ( name1, name2 : name_type) : boolean; EXTERN; FUNCTION ScmNames ( name1, name2 : name_type) : order; EXTERN; PROCEDURE S2Cases ( on : boolean); EXTERN.