Google
 

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.