remove some v9 specific code
[oota-llvm.git] / utils / Burg / fe.h
1 /* $Id$ */
2
3 struct binding {
4   char  *name;
5   int opnum;
6 };
7 typedef struct binding  *Binding;
8
9 struct arity {
10   int arity;
11   List  bindings;
12 };
13 typedef struct arity  *Arity;
14
15 struct patternAST {
16   struct symbol *sym;
17   char  *op;
18   List  children;
19 };
20 typedef struct patternAST *PatternAST;
21
22 struct ruleAST {
23   char      *lhs;
24   PatternAST    pat;
25   int     erulenum;
26   IntList     cost;
27   struct rule   *rule;
28   struct strTableElement  *kids;
29   struct strTableElement  *nts;
30 };
31 typedef struct ruleAST  *RuleAST;
32
33 typedef enum {
34   UNKNOWN,
35   OPERATOR,
36   NONTERMINAL
37 } TagType;
38
39 struct symbol {
40   char  *name;
41   TagType tag;
42   union {
43     NonTerminal nt;
44     Operator  op;
45   } u;
46 };
47 typedef struct symbol *Symbol;
48
49 struct strTableElement {
50   char *str;
51   IntList erulenos;
52   char *ename;
53 };
54 typedef struct strTableElement  *StrTableElement;
55
56 struct strTable {
57   List elems;
58 };
59 typedef struct strTable *StrTable;
60
61 extern void doGrammarNts ARGS((void));
62 void makeRuleDescArray ARGS((void));
63 void makeDeltaCostArray ARGS((void));
64 void makeStateStringArray ARGS((void));
65
66 extern StrTable newStrTable ARGS((void));
67 extern StrTableElement addString ARGS((StrTable, char *, int, int *));
68
69 extern void doSpec ARGS((List, List));
70 extern Arity newArity ARGS((int, List));
71 extern Binding newBinding ARGS((char *, int));
72 extern PatternAST newPatternAST ARGS((char *, List));
73 extern RuleAST newRuleAST ARGS((char *, PatternAST, int, IntList));
74 extern Symbol enter ARGS((char *, int *));
75 extern Symbol newSymbol ARGS((char *));
76
77 extern void makeDebug ARGS((void));
78 extern void makeSimple ARGS((void));
79 extern void makePlanks ARGS((void));
80 extern void makeOpLabel ARGS((void));
81 extern void makeChild ARGS((void));
82 extern void makeOperators ARGS((void));
83 extern void makeLabel ARGS((void));
84 extern void makeString ARGS((void));
85 extern void makeString ARGS((void));
86 extern void makeReduce ARGS((void));
87 extern void makeRuleTable ARGS((void));
88 extern void makeTables ARGS((void));
89 extern void makeTreecost ARGS((void));
90 extern void makePrint ARGS((void));
91 extern void makeRule ARGS((void));
92 extern void makeNts ARGS((void));
93 extern void makeKids ARGS((void));
94 extern void startBurm ARGS((void));
95 extern void startOptional ARGS((void));
96 extern void makePlankLabel ARGS((void));
97 extern void makeStateLabel ARGS((void));
98 extern void makeStringArray ARGS((void));
99 extern void makeNonterminalArray ARGS((void));
100 extern void makeCostArray ARGS((void));
101 extern void makeLHSmap ARGS((void));
102 extern void makeClosureArray ARGS((void));
103 extern void makeOperatorVector ARGS((void));
104 extern void endOptional ARGS((void));
105 extern void reportDiagnostics ARGS((void));
106 extern void makeNonterminals ARGS((void));
107 extern int opsOfArity ARGS((int));
108
109 extern void yypurge ARGS((void));
110 extern void yyfinished ARGS((void));
111
112 extern void printRepresentative ARGS((FILE *, Item_Set));
113
114 extern void dumpRules ARGS((List));
115 extern void dumpDecls ARGS((List));
116 extern void dumpRuleAST ARGS((RuleAST));
117 extern void dumpPatternAST ARGS((PatternAST));
118 extern void dumpArity ARGS((Arity));
119 extern void dumpBinding ARGS((Binding));
120 extern void dumpStrTable ARGS((StrTable));
121
122 extern int yylex ARGS((void));
123 extern int yyparse ARGS((void));
124
125 extern int  max_ruleAST;
126 extern List ruleASTs;
127
128 extern FILE *outfile;
129 extern const char *prefix;
130 extern int  trimflag;
131 extern int  speedflag;
132 extern int  grammarflag;