Trailing-Edge
-
PDP-10 Archives
-
decuslib10-12
-
43,50552/sym12c.def
There are no other files named sym12c.def in the archive.
{------------------------------------------------------------------------}
{--------------------------------------/ \----}
{---- ----! definitions for the !----}
{---- S Y M T A B . D E F ----! symbol-table version 3.2 !----}
{---- ----! (12 character id 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 = 12 { 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;
FUNCTION SymErr : err_type; EXTERN;
FUNCTION SymLErr : err_type; EXTERN;
PROCEDURE SymPErr (VAR out : text;
code : err_type); 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;
{>>>> Hash table manipulation procedures <<<<}
FUNCTION TLookup ( name : name_type) : hash_table; EXTERN;
FUNCTION TCreate ( name : name_type;
size : table_index) : hash_table; EXTERN;
FUNCTION TShove ( name : name_type;
size : table_index) : hash_table; EXTERN;
PROCEDURE TKill ( table : hash_table); EXTERN;
PROCEDURE TWipe ( table : hash_table); EXTERN;
FUNCTION TBegin ( table : hash_table;
size : table_index) : hash_table; EXTERN;
FUNCTION TEnd ( table : hash_table) : hash_table; EXTERN;
FUNCTION TLink ( tab1,
tab2 : hash_table) : hash_table; EXTERN;
FUNCTION TUnLink ( table : hash_table) : hash_table; EXTERN;
PROCEDURE TSearch ( table : hash_table;
depth : integer); EXTERN;
FUNCTION TWrite ( table : hash_table;
on : boolean) : boolean; EXTERN;
PROCEDURE TSort ( table : hash_table;
up : boolean); EXTERN;
PROCEDURE TName ( table : hash_table;
VAR name : name_type); EXTERN;
FUNCTION TSize ( table : hash_table) : table_index;EXTERN;
FUNCTION TLevel ( table : hash_table) : integer; EXTERN;
FUNCTION TUsed ( table : hash_table) : integer; EXTERN;
FUNCTION TnHash ( table : hash_table) : integer; EXTERN;
FUNCTION TnReHash ( table : hash_table) : integer; EXTERN;
{>>>> Object manipulation procedures <<<<}
FUNCTION OLookup ( table : hash_table;
name : name_type) : object; EXTERN;
FUNCTION OCreate ( table : hash_table;
name : name_type) : object; EXTERN;
FUNCTION OShove ( table : hash_table;
name : name_type) : object; EXTERN;
FUNCTION OFind ( table : hash_table;
name : name_type) : object; EXTERN;
FUNCTION OFirst ( table : hash_table) : object; EXTERN;
FUNCTION ONext ( obj : object) : object; EXTERN;
PROCEDURE OKill ( obj : object); EXTERN;
PROCEDURE OWipe ( obj : object); EXTERN;
PROCEDURE OWhat ( obj : object;
VAR name : name_type;
VAR kind : word;
VAR value : word); EXTERN;
FUNCTION OTable ( obj : object) : hash_table; EXTERN;
PROCEDURE OName ( obj : object;
VAR name : name_type); EXTERN;
FUNCTION OKind ( obj : object) : word; EXTERN;
FUNCTION OValue ( obj : object) : word; EXTERN;
PROCEDURE OChange ( obj : object;
kind : word;
value : word); EXTERN;
{>>>> Property manipulation procedures <<<<}
FUNCTION PLookup ( obj : object;
name : name_type) : property; EXTERN;
FUNCTION PCreate ( obj : object;
name : name_type;
shove: boolean;
kind : prop_kind) : property; EXTERN;
FUNCTION PArray ( obj : object;
name : name_type;
shove: boolean;
size : integer) : property; EXTERN;
PROCEDURE PKill ( prop : property); EXTERN;
PROCEDURE PWipe ( prop : property); EXTERN;
FUNCTION PKind ( prop : property) : prop_kind; EXTERN;
FUNCTION PObject ( prop : property) : object; EXTERN;
PROCEDURE PName ( prop : property;
VAR name : name_type); EXTERN;
FUNCTION PFirst ( obj : object) : property; EXTERN;
FUNCTION PNext ( prop : property) : property; EXTERN;
FUNCTION PValue ( prop : property) : word; EXTERN;
PROCEDURE PAssign ( prop : property;
val : word); EXTERN;
FUNCTION PEmpty ( prop : property) : boolean; EXTERN;
{>>>> `p_sequence' specific group <<<<}
PROCEDURE PReset ( prop : property); EXTERN;
PROCEDURE PAppend ( prop : property); EXTERN;
FUNCTION PEnd ( prop : property) : boolean; EXTERN;
PROCEDURE PGet ( prop : property); EXTERN;
PROCEDURE PPut ( prop : property); EXTERN;
PROCEDURE PRead ( prop : property;
VAR val : word); EXTERN;
PROCEDURE PWrite ( prop : property;
val : word); EXTERN;
{>>>> `p_stack' specific group <<<<}
PROCEDURE PPush ( prop : property;
val : word); EXTERN;
FUNCTION PPop ( prop : property) : word; EXTERN;
FUNCTION PTop ( prop : property) : word; EXTERN;
{>>>> `p_queue' specific group <<<<}
PROCEDURE PQueue ( prop : property;
val : word); EXTERN;
FUNCTION PunQueue ( prop : property) : word; EXTERN;
{>>>> `p_set' specific group <<<<}
FUNCTION PIn ( prop : property;
val : word) : boolean; EXTERN;
PROCEDURE PAdd ( prop : property;
val : word); EXTERN;
PROCEDURE PRemove ( prop : property;
val : word); EXTERN;
FUNCTION PCard ( prop : property) : integer; EXTERN;
FUNCTION PFElement ( prop : property) : word; EXTERN;
FUNCTION PNElement ( prop : property) : word; EXTERN;
{>>>> `p_array' specific group <<<<}
PROCEDURE PStore ( prop : property;
index: integer;
val : word); EXTERN;
FUNCTION PRecall ( prop : property;
index: integer) : word; EXTERN;
PROCEDURE PZero ( prop : property); EXTERN;
FUNCTION PSize ( prop : property) : integer; EXTERN.