summaryrefslogtreecommitdiff
path: root/utils/Burg/fe.h
diff options
context:
space:
mode:
Diffstat (limited to 'utils/Burg/fe.h')
-rw-r--r--utils/Burg/fe.h127
1 files changed, 127 insertions, 0 deletions
diff --git a/utils/Burg/fe.h b/utils/Burg/fe.h
new file mode 100644
index 0000000000..5cef79bbe1
--- /dev/null
+++ b/utils/Burg/fe.h
@@ -0,0 +1,127 @@
+/* $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 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 trimflag;
+extern int speedflag;
+extern int grammarflag;