/*
 * $Revision: 1.3 $
*/

#ifndef _PROTO_H_
#define _PROTO_H_

extern int grammar( );
extern int rule( );
extern int laction( );
extern int aLexclass( );
extern int error( );
extern int token( );
extern int block( );
extern int alt( );
extern int element( );
extern int action0( );
extern int lex( );
extern int nextChar( );
extern void SetLexInputStream( );
extern void CloseLexInputStream( );
extern void LexSkip( );
extern void LexMore( );
extern int GetToken( );
extern void advance( );
extern void lex_err( );
extern char * scarfPAction( );
extern void scarfComment( );
extern void scarfAction( );
extern void scarfQuotedTerm( );
extern char * scarfASTvar( );
extern char * scarfAttr( );
extern unsigned * err_decode( );
extern int err_print( );
extern int dfltErr( );
extern int dfltE2( );
extern void NewSetWd( );
extern void DumpSetWd( );
extern void NewSet( );
extern void FillSet( );
extern void ComputeErrorSets( );
extern void SubstErrorClass( );
extern int DefErrSet( );
extern void GenErrHdr( );
extern void dumpExpr( );
extern void addParm( );
extern Graph buildAction( );
extern Graph buildToken( );
extern Graph buildRuleRef( );
extern Graph Or( );
extern Graph Cat( );
extern Graph makeOpt( );
extern Graph makeBlk( );
extern Graph makeLoop( );
extern Graph makePlus( );
extern Graph emptyAlt( );
extern TokNode * newTokNode( );
extern RuleRefNode * newRNode( );
extern Junction * newJunction( );
extern ActionNode * newActionNode( );
extern char * makelocks( );
extern void preorder( );
/* extern Tree * tmake( ); */
extern Tree * tnode( );
extern void tfree( );
extern Tree * tdup( );
extern Tree * tappend( );
extern void Tfree( );
extern Tree * tlink( );
extern Tree * tshrink( );
extern Tree * tflatten( );
extern Tree * tJunc( );
extern Tree * tRuleRef( );
extern Tree * tToken( );
extern Tree * tAction( );
extern int tmember( );
extern Tree * tleft_factor( );
extern Tree * trm_perm( );
extern void tcvt( );
extern Tree * permute( );
extern Tree * VerifyAmbig( );
extern set rJunc( );
extern set rRuleRef( );
extern set rToken( );
extern set rAction( );
extern void HandleAmbiguity( );
extern set First( );
extern void freeBlkFsets( );
extern void genAction( );
extern void genRuleRef( );
extern void genToken( );
extern void genOptBlk( );
extern void genLoopBlk( );
extern void genLoopBegin( );
extern void genPlusBlk( );
extern void genSubBlk( );
extern void genRule( );
extern void genJunction( );
extern void genEndBlk( );
extern void genEndRule( );
extern void genHdr( );
extern void genHdr1( );
extern void dumpAction( );
extern Entry ** newHashTable( );
extern Entry * hash_add( );
extern Entry * hash_get( );
extern void hashStat( );
extern void genLexDescr( );
extern void dumpLexClasses( );
extern void genDefFile( );
extern void DumpListOfParmNames( );
extern int DumpNextNameInDef( );
extern void DumpOldStyleParms( );
extern void DumpType( );
extern int strmember( );
extern int HasComma( );
extern void DumpRetValStruct( );
extern char * StripQuotes( );
extern void pLLK( );
extern void pCGen( );
extern void pLGen( );
extern void pTGen( );
extern void pSGen( );
extern void pPrt( );
extern void pPrtA( );
extern void pAst( );
extern void pANSI( );
extern void pCr( );
extern void pLI( );
extern void pFe( );
extern void pFl( );
extern void pFt( );
extern void pE1( );
extern void pE2( );
extern void pE3( );
extern void pEGen( );
extern void pEset( );
extern int main( );
extern void readDescr( );
extern FILE * NextFile( );
extern char * outname( );
extern void fatalFL( );
extern void cleanUp( );
extern char * eMsg3( );
extern char * eMsgd( );
extern void s_fprT( );
extern void ProcessArgs( );
extern void lexclass( );
extern void lexmode( );
extern int LexClassIndex( );
extern int hasAction( );
extern void setHasAction( );
extern int addTname( );
extern int addTexpr( );
extern int Tnum( );
extern void Tlink( );
extern Entry * newEntry( );
extern void list_add( );
extern void list_apply( );
extern char * Fkey( );
extern void FoPush( );
extern void FoPop( );
extern void RegisterCycle( );
extern void ResolveFoCycles( );
extern void pJunc( );
extern void pRuleRef( );
extern void pToken( );
extern void pAction( );
extern void FoLink( );
extern void addFoLink( );
extern void GenCrossRef( );
extern void set_size( );
extern unsigned int set_deg( );
extern set set_or( );
extern set set_and( );
extern set set_dif( );
extern set set_of( );
extern void set_ext( );
extern set set_not( );
extern int set_equ( );
extern int set_sub( );
extern unsigned set_int( );
extern int set_el( );
extern int set_nil( );
extern char * set_str( );
extern set set_val( );
extern void set_orel( );
extern void set_orin( );
extern void set_rm( );
extern void set_clr( );
extern set set_dup( );
extern int set_PDQ( );
extern unsigned * set_pdq( );
extern int set_hash( );
extern char * mMalloc( );
extern char * mCalloc( );
extern char * mRealloc( );
extern void mFree( );
extern void mMark( );
extern void mWeed( );
extern void mWipe( );
extern void mHist( );
extern void mLog( );
extern void pChk( );
extern void mChk( );
extern void defErr( );

#endif
