| /* $Id$ */ |
| |
| 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 void doGrammarNts ARGS((void)); |
| void makeRuleDescArray ARGS((void)); |
| void makeDeltaCostArray ARGS((void)); |
| void makeStateStringArray ARGS((void)); |
| |
| 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 const char *prefix; |
| extern int trimflag; |
| extern int speedflag; |
| extern int grammarflag; |