/*
 *  MODULE  : symtab.h
 *  This module handles the data structure symtab.
 *  symtab stores all keywords and identifiers.
{*  last modification:	23.01.92  13:55   }

 *  uli 04.01.91 : old declarations deleted, symprint is global now
 *  uli 11.02.91 : symsymc added
 *  uli 12.02.91 : sNosym added
 *  uli 06.08.91 : sPTRCHAR sSIZEOF added.
 *  uli 09.08.91 : sINT_OF_C sFILE_OF_C sPOINTER_OF_C added.
 *  uli 12.12.91 : symtab == symtext.
 *  uli 23.01.92 : sIDOT etc. added.
 *  Tim 10.11.92 : sALLOCATE, sALLOCATED and sFREE added.
*/


typedef shortint symptr;
#define symNIL (symptr)-1
				    /* symtab pointers for standard names */
global symptr   sNosym              /* bad identifier */
,               sABS
,               sARCTAN
,               sBOOLEAN
,               sBUFSIZ
,               sCHAR
,               sCHR
,               sCINTERVAL
,               sCOMPLEX
,               sCOS
,               sDISPOSE
,               sDOTPRECISION
,               sIDOTPRECISION
,               sCDOTPRECISION
,               sCIDOTPRECISION
,               sEOF
,               sEOLN
,               sEXP
,               sFALSE
,               sFILE_OF_C
,               sGET
,               sIM
,               sIMAGE
,               sINF
,               sINPUT
,               sINTEGER
,               sINTERVAL
,               sINT_OF_C
,               sIVAL
,               sLB
,               sLBOUND
,               sLN
,               sLENGTH
,               sMAXINT
,               sMAXLENGTH
,               sNEW
,               sNULL
,               sODD
,               sORD
,               sOUTPUT
,               sPACK
,               sPAGE
,               sPOINTER_OF_C
,               sPOS
,               sPTRCHAR
,               sPUT
,               sPRED
,               sRE
,               sREAD
,               sREADLN
,               sREAL
,               sRESET
,               sREWRITE
,               sROUND
,               sRVAL
,               sSCALP
,               sSIN
,               sSIZEOF
,               sSQR
,               sSQRT
,               sSTRING
,               sSUBSTRING
,               sSUCC
,               sSUP
,               sTEXT
,               sTRUE
,               sTRUNC
,               sUB
,               sUBOUND
,               sUNPACK
,               sWRITE
,               sWRITELN
,               sALLOCATE
,               sFREE
,               sALLOCATED

,               sRVECTOR
,               sCVECTOR
,               sIVECTOR
,               sCIVECTOR
,               sRMATRIX
,               sCMATRIX
,               sIMATRIX
,               sCIMATRIX
,               sINTVAL
,               sCOMPL
,               sID
,               sCONJ
,               sTRANSP
,               sHERM
;

#define symtab symtext

#ifdef LINT_ARGS
global symptr    symins    (char *);
global symptr    symcins   (char *string, symctype *symc);
global void      symchange (register symptr, register symctype);
global symctype  symsymc   (symptr);
global char    * symtext   (symptr);
global void      syminit   (void);
global void      symprint  (symptr);
 /* writes the textual representation to stdout, used for debugging */

#else

global symptr    symins    ();
global symptr    symcins   ();
global void      symchange ();
global symctype  symsymc   ();
global char    * symtext   ();
global void      syminit   ();
global void      symprint  ();
#endif
