39 |
written. Actions and guards are accessed via the rule number. |
written. Actions and guards are accessed via the rule number. |
40 |
|
|
41 |
The rules themselves are described by several arrays: amongst which |
The rules themselves are described by several arrays: amongst which |
42 |
RITEM, and RULE_TABLE. |
RITEM, and RULES. |
43 |
|
|
44 |
RULE_TABLE is an array of struct rule_s, which members are: |
RULES is an array of struct rule_s, which members are: |
45 |
|
|
46 |
RULE_TABLE[R].lhs -- the symbol number of the left hand side of |
RULES[R].lhs -- the symbol number of the left hand side of |
47 |
rule R. If -1, the rule has been thrown out by reduce.c and should |
rule R. If -1, the rule has been thrown out by reduce.c and should |
48 |
be ignored. |
be ignored. |
49 |
|
|
50 |
RULE_TABLE[R].rhs -- the index in RITEM of the beginning of the |
RULES[R].rhs -- the index in RITEM of the beginning of the |
51 |
portion for rule R. |
portion for rule R. |
52 |
|
|
53 |
RULE_TABLE[R].prec -- the precedence level of R. |
RULES[R].prec -- the precedence level of R. |
54 |
|
|
55 |
RULE_TABLE[R].precsym -- the symbol-number of the symbol in %prec |
RULES[R].precsym -- the symbol-number of the symbol in %prec |
56 |
for R (if any). |
for R (if any). |
57 |
|
|
58 |
RULE_TABLE[R].assoc -- the associativity of R. |
RULES[R].assoc -- the associativity of R. |
59 |
|
|
60 |
RULE_TABLE[R].line -- the line where R was defined. |
RULES[R].line -- the line where R was defined. |
61 |
|
|
62 |
RULE_TABLE[R].useful -- TRUE iff the rule is used. |
RULES[R].useful -- TRUE iff the rule is used. |
63 |
|
|
64 |
The right hand side is stored as symbol numbers in a portion of |
The right hand side is stored as symbol numbers in a portion of |
65 |
RITEM. |
RITEM. |
128 |
short guard_line; |
short guard_line; |
129 |
} rule_t; |
} rule_t; |
130 |
|
|
131 |
extern struct rule_s *rule_table; |
extern struct rule_s *rules; |
132 |
|
|
133 |
/* Table of the symbols, indexed by the symbol number. */ |
/* Table of the symbols, indexed by the symbol number. */ |
134 |
extern struct bucket **symbols; |
extern struct bucket **symbols; |