/* $Id: fe.h,v 1.1 1998-12-17 06:36:47 fur%netscape.com Exp $ */ struct binding { char *name; int opnum; }; typedef struct binding *Binding; struct arity { int arity; List bindings; }; typedef struct arity *Arity; struct patternAST { struct symbol *sym; char *op; List children; }; typedef struct patternAST *PatternAST; struct ruleAST { char *lhs; PatternAST pat; int erulenum; IntList cost; struct rule *rule; struct strTableElement *kids; struct strTableElement *nts; }; typedef struct ruleAST *RuleAST; typedef enum { UNKNOWN, OPERATOR, NONTERMINAL } TagType; struct symbol { char *name; TagType tag; union { NonTerminal nt; Operator op; } u; }; typedef struct symbol *Symbol; struct strTableElement { char *str; IntList erulenos; char *ename; }; typedef struct strTableElement *StrTableElement; struct strTable { List elems; }; typedef struct strTable *StrTable; extern StrTable newStrTable ARGS((void)); extern StrTableElement addString ARGS((StrTable, char *, int, int *)); extern void doSpec ARGS((List, List)); extern Arity newArity ARGS((int, List)); extern Binding newBinding ARGS((char *, int)); extern PatternAST newPatternAST ARGS((char *, List)); extern RuleAST newRuleAST ARGS((char *, PatternAST, int, IntList)); extern Symbol enter ARGS((char *, int *)); extern Symbol newSymbol ARGS((char *)); extern void makeDebug ARGS((void)); extern void makeSimple ARGS((void)); extern void makePlanks ARGS((void)); extern void makeOpLabel ARGS((void)); extern void makeChild ARGS((void)); extern void makeOperators ARGS((void)); extern void makeLabel ARGS((void)); extern void makeString ARGS((void)); extern void makeString ARGS((void)); extern void makeReduce ARGS((void)); extern void makeRuleTable ARGS((void)); extern void makeTables ARGS((void)); extern void makeTreecost ARGS((void)); extern void makePrint ARGS((void)); extern void makeRule ARGS((void)); extern void makeNts ARGS((void)); extern void makeKids ARGS((void)); extern void startBurm ARGS((void)); extern void startOptional ARGS((void)); extern void makePlankLabel ARGS((void)); extern void makeStateLabel ARGS((void)); extern void makeStringArray ARGS((void)); extern void makeNonterminalArray ARGS((void)); extern void makeCostArray ARGS((void)); extern void makeLHSmap ARGS((void)); extern void makeClosureArray ARGS((void)); extern void makeOperatorVector ARGS((void)); extern void endOptional ARGS((void)); extern void reportDiagnostics ARGS((void)); extern void makeNonterminals ARGS((void)); extern int opsOfArity ARGS((int)); extern void yypurge ARGS((void)); extern void yyfinished ARGS((void)); extern void printRepresentative ARGS((FILE *, Item_Set)); extern void dumpRules ARGS((List)); extern void dumpDecls ARGS((List)); extern void dumpRuleAST ARGS((RuleAST)); extern void dumpPatternAST ARGS((PatternAST)); extern void dumpArity ARGS((Arity)); extern void dumpBinding ARGS((Binding)); extern void dumpStrTable ARGS((StrTable)); extern int yylex ARGS((void)); extern int yyparse ARGS((void)); extern int max_ruleAST; extern List ruleASTs; extern FILE *outfile; extern char *prefix; extern int safely; extern int trimflag;