/* National Institute of Standards and Technology (NIST)
/* National Computer System Laboratory (NCSL)
/* Office Systems Engineering (OSE) Group
/* ********************************************************************
/*                            D I S C L A I M E R
/*                              (March 8, 1989)
/*  
/* There is no warranty for the NIST NCSL OSE SGML parser and/or the NIST
/* NCSL OSE SGML parser validation suite.  If the SGML parser and/or
/* validation suite is modified by someone else and passed on, NIST wants
/* the parser's recipients to know that what they have is not what NIST
/* distributed, so that any problems introduced by others will not
/* reflect on our reputation.
/* 
/* Policies
/* 
/* 1. Anyone may copy and distribute verbatim copies of the SGML source
/* code as received in any medium.
/* 
/* 2. Anyone may modify your copy or copies of SGML parser source code or
/* any portion of it, and copy and distribute such modifications provided
/* that all modifications are clearly associated with the entity that
/* performs the modifications.
/* 
/* NO WARRANTY
/* ===========
/* 
/* NIST PROVIDES ABSOLUTELY NO WARRANTY.  THE SGML PARSER AND VALIDATION
/* SUITE ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
/* EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
/* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
/* THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS
/* WITH YOU.  SHOULD THE SGML PARSER OR VALIDATION SUITE PROVE DEFECTIVE,
/* YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
/* 
/* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW WILL NIST BE LIABLE FOR
/* DAMAGES, INCLUDING ANY LOST PROFITS, LOST MONIES, OR OTHER SPECIAL,
/* INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
/* INABILITY TO USE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
/* BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY THIRD PARTIES OR A
/* FAILURE OF THE PROGRAM TO OPERATE WITH PROGRAMS NOT DISTRIBUTED BY
/* NIST) THE PROGRAM, EVEN IF YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF
/* SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY.
*/

/************************************************************************/
/*   TITLE:          SGML PARSER                                        */
/*   SYSTEM:         DTD PROCESSOR                                      */
/*   SUBSYSTEM:                                                         */
/*   SOURCE FILE:    DTDFNCS.H                                          */
/*   AUTHOR:         Jim Heath                                          */
/*                                                                      */
/*   DATE CREATED:                                                      */
/*   LAST MODIFIED:                                                     */
/*                                                                      */
/*                  REVISIONS                                           */
/*   WHEN      WHO            WHY                                       */
/************************************************************************/
/* DTD.C */
/*global*/  int main();
/*global*/  void processinput();
/*global*/  void doopts();
/*global*/  void dofiles();
/*global*/  void dodecl();
/*global*/  void writeposition();
/*global*/  void dogetds();
/*global*/  void dopio();
/*global*/  void finddocelt();
/*global*/  void finddocelt2();
/*global*/  void dopio2();
/*global*/  int docomment();
/*global*/  void dokeyword();

/* DTDMS.C */
/*global*/  void get_name();
/*global*/  void get_ms_closes();
/*global*/  void dogetsgml();
/*global*/  void get_marked_section();
/*global*/  int mycompare();

/* DTDATTR.C */
/*global*/  int doattlist();
/*global*/  int doattlist2();
static  int getdeclvalcode();
static  int getdeclgroup();
static  void analyzedflt();
static  void validate();
static  void cvrtdeclcode();
static  void cvrtdfltcode();
static  void grpvalidate();
/*global*/  void inputattrvalspec();
/*global*/  int reslvgref();
/* DTDELT.C */
/*global*/  int doelement();
/*global*/  int dosingleelt();
/*global*/  int doeltgroup();
/*global*/  void doelt2();
/*global*/  int geteltname();
/*global*/  void docontent();
/*global*/  void getsubexprs();
/*global*/  int simplify();
/*global*/  int updateoi();
/*global*/  void writecount();
static  void writename();
static  void writeconnector();
/*global*/  void putsymtbl();
/*global*/  int andcount();
/*global*/  void chkconnector();
/*global*/  int ckfordup();
static  void doinclusions();
static  void doexclusions();
/*global*/ int countnames();
/*global*/ int nestlevel();
/*global*/ void writecmodel();
/* DTDENT.C */ 
/*global*/  void doentity();
/*global*/  char *getentname();
/*global*/  int getenttext();
/*global*/  int search();
/*global*/  void buildtbl();
/*global*/  void buildandwritesymbol();
/*global*/  void writerecord();
/* DTDEXIT.C */ 
/*global*/  void bldsymbtbl();
static  void doincludes();
static  void doexcludes();
/*global*/  void bldtokentree();
/*global*/  int find();
/*global*/  int find2();
/*global*/  void ckattributes();
/*global*/  void closeall();
/*global*/  void unlinkall();
/* DTDGRPS.C */ 
/*global*/  char *getagroup();
/*global*/  int dosawGRPO();
/*global*/  int dosawGRPC();
/*global*/  int doendGRP();
/*global*/  int doinNAME();
/*global*/  int dosawOI();
/*global*/  int dosawCONNECTOR();
/*global*/  int doendofNAME();
/*global*/  int dosawEE();
/*global*/  int INPTS();
/*global*/  void ckts();
/*global*/  int issepchar();
/* DTDNOTAT.C */ 
/*global*/  int donotation();
/*global*/  void inpextrnlID();
/*global*/  void dosystem();
/*global*/  void dopublic();
/*global*/  void getminimumliteral();
/*global*/  void cknotation();
/* DTDUINP.C */ 
/*global*/  int inpsep();
/*global*/  void reslvpref();
/*global*/  void ungetreslv();
/*global*/  int inpitem();
/*global*/  void inpcomment();
/*global*/  int inpMDO();
/*global*/  void inpparmlit();
/*global*/  void reslvcharref();
/*global*/  void xlatcharnum();
/*global*/  void reslvreplpref();
/*global*/  int jgetc();
/*global*/  void jungetc();
/*global*/  void stackinit();
/*global*/  int getkwindex();
/* DTDUMISC.C */ 
/*global*/  void nullfnc();
/*global*/  int noxlat();
/*global*/  void FUNCTRACE();
/*global*/  void terminate();
/*global*/  int TOUPPER();
/*global*/  void syntxerr();
/*global*/  int ISALPHA();
/*global*/  int ISDIGIT();
/*global*/  int ISALNUM();
/*global*/  int isnmchar();
/*global*/  int isnmstrt();
/*global*/  int isspcl();
/*global*/  void safewrite();
/*global*/  int safeopen();
/*global*/  int safecreat();
/*global*/  int safeunlink();
/*global*/  FILE *safefopen();
/*global*/  void safeclose();
/*global*/  void safefclose();
/*global*/  char *synliteral();
/*global*/  void mprintf();
/*global*/  int getnamegrp();
/*global*/  int isconnector();
/*global*/  int isoi();
/*global*/  int isnamerni();
/*global*/  char *getnamerni();
