Remove trailing whitespace
[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;