mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
1e1215d0d7
llvm-svn: 8875
50 lines
736 B
C
50 lines
736 B
C
char rcsid_rule[] = "$Id$";
|
|
|
|
#include "b.h"
|
|
#include <stdio.h>
|
|
|
|
RuleNum max_rule;
|
|
int max_erule_num;
|
|
|
|
struct rule stub_rule;
|
|
|
|
List rules;
|
|
|
|
Rule
|
|
newRule(delta, erulenum, lhs, pat) DeltaPtr delta; ERuleNum erulenum; NonTerminal lhs; Pattern pat;
|
|
{
|
|
Rule p;
|
|
|
|
p = (Rule) zalloc(sizeof(struct rule));
|
|
assert(p);
|
|
ASSIGNCOST(p->delta, delta);
|
|
p->erulenum = erulenum;
|
|
if (erulenum > max_erule_num) {
|
|
max_erule_num = erulenum;
|
|
}
|
|
p->num = max_rule++;
|
|
p->lhs = lhs;
|
|
p->pat = pat;
|
|
|
|
rules = newList(p, rules);
|
|
|
|
return p;
|
|
}
|
|
|
|
void
|
|
dumpRule(p) Rule p;
|
|
{
|
|
dumpNonTerminal(p->lhs);
|
|
printf(" : ");
|
|
dumpPattern(p->pat);
|
|
printf(" ");
|
|
dumpCost(p->delta);
|
|
printf("\n");
|
|
}
|
|
|
|
void
|
|
dumpRuleList(l) List l;
|
|
{
|
|
foreachList((ListFn)dumpRule, l);
|
|
}
|