* src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,

* src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
* src/reader.c, src/reduce.c, src/state.h, src/symtab.h
(token_number_t, item_number_as_token_number)
(token_number_as_item_number, muscle_insert_token_number_table):
Rename as...
(symbol_number_t, item_number_as_symbol_number)
(symbol_number_as_item_number, muscle_insert_symbol_number_table):
these, since it is more appropriate.
This commit is contained in:
Akim Demaille
2002-05-26 18:39:05 +00:00
parent 5504898e82
commit a49aecd528
14 changed files with 63 additions and 51 deletions

View File

@@ -1,3 +1,15 @@
2002-05-26 Akim Demaille <akim@epita.fr>
* src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
* src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
* src/reader.c, src/reduce.c, src/state.h, src/symtab.h
(token_number_t, item_number_as_token_number)
(token_number_as_item_number, muscle_insert_token_number_table):
Rename as...
(symbol_number_t, item_number_as_symbol_number)
(symbol_number_as_item_number, muscle_insert_symbol_number_table):
these, since it is more appropriate.
2002-05-26 Akim Demaille <akim@epita.fr> 2002-05-26 Akim Demaille <akim@epita.fr>
* tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional

View File

@@ -52,7 +52,7 @@ static state_t *this_state = NULL;
static state_t *last_state = NULL; static state_t *last_state = NULL;
static int nshifts; static int nshifts;
static token_number_t *shift_symbol = NULL; static symbol_number_t *shift_symbol = NULL;
static short *redset = NULL; static short *redset = NULL;
static short *shiftset = NULL; static short *shiftset = NULL;
@@ -117,7 +117,7 @@ allocate_storage (void)
shiftset = XCALLOC (short, nsyms); shiftset = XCALLOC (short, nsyms);
redset = XCALLOC (short, nrules + 1); redset = XCALLOC (short, nrules + 1);
state_hash = XCALLOC (state_t *, STATE_HASH_SIZE); state_hash = XCALLOC (state_t *, STATE_HASH_SIZE);
shift_symbol = XCALLOC (token_number_t, nsyms); shift_symbol = XCALLOC (symbol_number_t, nsyms);
} }
@@ -164,8 +164,8 @@ new_itemsets (void)
for (i = 0; i < nritemset; ++i) for (i = 0; i < nritemset; ++i)
if (ritem[itemset[i]] >= 0) if (ritem[itemset[i]] >= 0)
{ {
token_number_t symbol symbol_number_t symbol
= item_number_as_token_number (ritem[itemset[i]]); = item_number_as_symbol_number (ritem[itemset[i]]);
if (!kernel_size[symbol]) if (!kernel_size[symbol])
{ {
shift_symbol[nshifts] = symbol; shift_symbol[nshifts] = symbol;
@@ -185,7 +185,7 @@ new_itemsets (void)
`-----------------------------------------------------------------*/ `-----------------------------------------------------------------*/
static state_t * static state_t *
new_state (token_number_t symbol, size_t core_size, item_number_t *core) new_state (symbol_number_t symbol, size_t core_size, item_number_t *core)
{ {
state_t *p; state_t *p;
@@ -228,7 +228,7 @@ new_state (token_number_t symbol, size_t core_size, item_number_t *core)
`--------------------------------------------------------------*/ `--------------------------------------------------------------*/
static int static int
get_state (token_number_t symbol, size_t core_size, item_number_t *core) get_state (symbol_number_t symbol, size_t core_size, item_number_t *core)
{ {
int key; int key;
size_t i; size_t i;
@@ -297,7 +297,7 @@ append_states (void)
{ {
int i; int i;
int j; int j;
token_number_t symbol; symbol_number_t symbol;
if (trace_flag) if (trace_flag)
fprintf (stderr, "Entering append_states, state = %d\n", fprintf (stderr, "Entering append_states, state = %d\n",

View File

@@ -69,7 +69,7 @@ set_derives (void)
p = delts; p = delts;
for (i = nrules; i > 0; i--) for (i = nrules; i > 0; i--)
{ {
token_number_t lhs = rules[i].lhs->number; symbol_number_t lhs = rules[i].lhs->number;
p->next = dset[lhs]; p->next = dset[lhs];
p->value = i; p->value = i;
dset[lhs] = p; dset[lhs] = p;

View File

@@ -39,9 +39,9 @@ int nsyms = 0;
int ntokens = 1; int ntokens = 1;
int nvars = 0; int nvars = 0;
token_number_t *token_translations = NULL; symbol_number_t *token_translations = NULL;
token_number_t start_symbol = 0; symbol_number_t start_symbol = 0;
int max_user_token_number = 256; int max_user_token_number = 256;

View File

@@ -113,15 +113,15 @@ extern item_number_t *ritem;
extern unsigned int nritems; extern unsigned int nritems;
/* There is weird relationship between item_number_t and /* There is weird relationship between item_number_t and
token_number_t: we store token_number_t in item_number_t, but in symbol_number_t: we store symbol_number_t in item_number_t, but in
the latter we also store, as negative numbers, the rule numbers. the latter we also store, as negative numbers, the rule numbers.
Therefore, an token_number_t must be a valid item_number_t, and we Therefore, an symbol_number_t must be a valid item_number_t, and we
sometimes have to perform the converse transformation. */ sometimes have to perform the converse transformation. */
#define token_number_as_item_number(Tok) ((item_number_t) (Tok)) #define symbol_number_as_item_number(Tok) ((item_number_t) (Tok))
#define item_number_as_token_number(Ite) ((token_number_t) (Ite)) #define item_number_as_symbol_number(Ite) ((symbol_number_t) (Ite))
extern token_number_t start_symbol; extern symbol_number_t start_symbol;
typedef struct rule_s typedef struct rule_s
@@ -158,7 +158,7 @@ extern symbol_t **symbols;
/* TOKEN_TRANSLATION -- a table indexed by a token number as returned /* TOKEN_TRANSLATION -- a table indexed by a token number as returned
by the user's yylex routine, it yields the internal token number by the user's yylex routine, it yields the internal token number
used by the parser and throughout bison. */ used by the parser and throughout bison. */
extern token_number_t *token_translations; extern symbol_number_t *token_translations;
extern int max_user_token_number; extern int max_user_token_number;

View File

@@ -217,7 +217,7 @@ set_goto_map (void)
`----------------------------------------------------------*/ `----------------------------------------------------------*/
static int static int
map_goto (int state, token_number_t symbol) map_goto (int state, symbol_number_t symbol)
{ {
int high; int high;
int low; int low;
@@ -267,7 +267,7 @@ initialize_F (void)
for (; j < sp->nshifts; j++) for (; j < sp->nshifts; j++)
{ {
token_number_t symbol = SHIFT_SYMBOL (sp, j); symbol_number_t symbol = SHIFT_SYMBOL (sp, j);
if (nullable[symbol]) if (nullable[symbol])
edge[nedges++] = map_goto (stateno, symbol); edge[nedges++] = map_goto (stateno, symbol);
} }
@@ -408,7 +408,7 @@ build_relations (void)
for (i = 0; i < ngotos; i++) for (i = 0; i < ngotos; i++)
{ {
int nedges = 0; int nedges = 0;
token_number_t symbol1 = states[to_state[i]]->accessing_symbol; symbol_number_t symbol1 = states[to_state[i]]->accessing_symbol;
short *rulep; short *rulep;
for (rulep = derives[symbol1]; *rulep > 0; rulep++) for (rulep = derives[symbol1]; *rulep > 0; rulep++)
@@ -427,7 +427,7 @@ build_relations (void)
{ {
state = states[sp->shifts[j]]; state = states[sp->shifts[j]];
if (state->accessing_symbol if (state->accessing_symbol
== item_number_as_token_number (*rp)) == item_number_as_symbol_number (*rp))
break; break;
} }
@@ -446,9 +446,9 @@ build_relations (void)
/* JF added rp>=ritem && I hope to god its right! */ /* JF added rp>=ritem && I hope to god its right! */
if (rp >= ritem && ISVAR (*rp)) if (rp >= ritem && ISVAR (*rp))
{ {
/* Downcasting from item_number_t to token_number_t. */ /* Downcasting from item_number_t to symbol_number_t. */
edge[nedges++] = map_goto (states1[--length], edge[nedges++] = map_goto (states1[--length],
item_number_as_token_number (*rp)); item_number_as_symbol_number (*rp));
if (nullable[*rp]) if (nullable[*rp])
done = 0; done = 0;
} }

View File

@@ -47,11 +47,11 @@ void
set_nullable (void) set_nullable (void)
{ {
int ruleno; int ruleno;
token_number_t *s1; symbol_number_t *s1;
token_number_t *s2; symbol_number_t *s2;
shorts *p; shorts *p;
token_number_t *squeue = XCALLOC (token_number_t, nvars); symbol_number_t *squeue = XCALLOC (symbol_number_t, nvars);
short *rcount = XCALLOC (short, nrules + 1); short *rcount = XCALLOC (short, nrules + 1);
/* RITEM contains all the rules, including useless productions. /* RITEM contains all the rules, including useless productions.
Hence we must allocate room for useless nonterminals too. */ Hence we must allocate room for useless nonterminals too. */

View File

@@ -215,7 +215,7 @@ Name (const char *name, \
GENERATE_MUSCLE_INSERT_TABLE(muscle_insert_unsigned_int_table, unsigned int) GENERATE_MUSCLE_INSERT_TABLE(muscle_insert_unsigned_int_table, unsigned int)
GENERATE_MUSCLE_INSERT_TABLE(muscle_insert_short_table, short) GENERATE_MUSCLE_INSERT_TABLE(muscle_insert_short_table, short)
GENERATE_MUSCLE_INSERT_TABLE(muscle_insert_token_number_table, token_number_t) GENERATE_MUSCLE_INSERT_TABLE(muscle_insert_symbol_number_table, symbol_number_t)
GENERATE_MUSCLE_INSERT_TABLE(muscle_insert_item_number_table, item_number_t) GENERATE_MUSCLE_INSERT_TABLE(muscle_insert_item_number_table, item_number_t)
@@ -227,7 +227,7 @@ GENERATE_MUSCLE_INSERT_TABLE(muscle_insert_item_number_table, item_number_t)
static void static void
prepare_tokens (void) prepare_tokens (void)
{ {
muscle_insert_token_number_table ("translate", muscle_insert_symbol_number_table ("translate",
token_translations, token_translations,
0, 1, max_user_token_number + 1); 0, 1, max_user_token_number + 1);
@@ -290,7 +290,7 @@ prepare_rules (void)
item_number_t *rhs = XMALLOC (item_number_t, nritems); item_number_t *rhs = XMALLOC (item_number_t, nritems);
unsigned int *prhs = XMALLOC (unsigned int, nrules + 1); unsigned int *prhs = XMALLOC (unsigned int, nrules + 1);
unsigned int *rline = XMALLOC (unsigned int, nrules + 1); unsigned int *rline = XMALLOC (unsigned int, nrules + 1);
token_number_t *r1 = XMALLOC (token_number_t, nrules + 1); symbol_number_t *r1 = XMALLOC (symbol_number_t, nrules + 1);
unsigned int *r2 = XMALLOC (unsigned int, nrules + 1); unsigned int *r2 = XMALLOC (unsigned int, nrules + 1);
for (r = 1; r < nrules + 1; ++r) for (r = 1; r < nrules + 1; ++r)
@@ -315,7 +315,7 @@ prepare_rules (void)
muscle_insert_item_number_table ("rhs", rhs, ritem[0], 1, nritems); muscle_insert_item_number_table ("rhs", rhs, ritem[0], 1, nritems);
muscle_insert_unsigned_int_table ("prhs", prhs, 0, 1, nrules + 1); muscle_insert_unsigned_int_table ("prhs", prhs, 0, 1, nrules + 1);
muscle_insert_unsigned_int_table ("rline", rline, 0, 1, nrules + 1); muscle_insert_unsigned_int_table ("rline", rline, 0, 1, nrules + 1);
muscle_insert_token_number_table ("r1", r1, 0, 1, nrules + 1); muscle_insert_symbol_number_table ("r1", r1, 0, 1, nrules + 1);
muscle_insert_unsigned_int_table ("r2", r2, 0, 1, nrules + 1); muscle_insert_unsigned_int_table ("r2", r2, 0, 1, nrules + 1);
free (rhs); free (rhs);
@@ -333,11 +333,11 @@ static void
prepare_states (void) prepare_states (void)
{ {
size_t i; size_t i;
token_number_t *values = symbol_number_t *values =
(token_number_t *) alloca (sizeof (token_number_t) * nstates); (symbol_number_t *) alloca (sizeof (symbol_number_t) * nstates);
for (i = 0; i < nstates; ++i) for (i = 0; i < nstates; ++i)
values[i] = states[i]->accessing_symbol; values[i] = states[i]->accessing_symbol;
muscle_insert_token_number_table ("stos", values, muscle_insert_symbol_number_table ("stos", values,
0, 1, nstates); 0, 1, nstates);
} }
@@ -390,7 +390,7 @@ action_row (state_t *state)
to reduce. */ to reduce. */
for (i = 0; i < shiftp->nshifts; i++) for (i = 0; i < shiftp->nshifts; i++)
{ {
token_number_t symbol; symbol_number_t symbol;
int shift_state = shiftp->shifts[i]; int shift_state = shiftp->shifts[i];
if (!shift_state) if (!shift_state)
continue; continue;

View File

@@ -149,7 +149,7 @@ print_shifts (FILE *out, state_t *state)
if (!SHIFT_IS_DISABLED (shiftp, i)) if (!SHIFT_IS_DISABLED (shiftp, i))
{ {
int state1 = shiftp->shifts[i]; int state1 = shiftp->shifts[i];
token_number_t symbol = states[state1]->accessing_symbol; symbol_number_t symbol = states[state1]->accessing_symbol;
fprintf (out, fprintf (out,
_(" %-4s\tshift, and go to state %d\n"), _(" %-4s\tshift, and go to state %d\n"),
escape (symbols[symbol]->tag), state1); escape (symbols[symbol]->tag), state1);
@@ -191,7 +191,7 @@ print_gotos (FILE *out, state_t *state)
if (!SHIFT_IS_DISABLED (shiftp, i)) if (!SHIFT_IS_DISABLED (shiftp, i))
{ {
int state1 = shiftp->shifts[i]; int state1 = shiftp->shifts[i];
token_number_t symbol = states[state1]->accessing_symbol; symbol_number_t symbol = states[state1]->accessing_symbol;
fprintf (out, _(" %-4s\tgo to state %d\n"), fprintf (out, _(" %-4s\tgo to state %d\n"),
escape (symbols[symbol]->tag), state1); escape (symbols[symbol]->tag), state1);
} }
@@ -215,7 +215,7 @@ print_reductions (FILE *out, state_t *state)
if (state->consistent) if (state->consistent)
{ {
int rule = redp->rules[0]; int rule = redp->rules[0];
token_number_t symbol = rules[rule].lhs->number; symbol_number_t symbol = rules[rule].lhs->number;
fprintf (out, _(" $default\treduce using rule %d (%s)\n\n"), fprintf (out, _(" $default\treduce using rule %d (%s)\n\n"),
rule - 1, escape (symbols[symbol]->tag)); rule - 1, escape (symbols[symbol]->tag));
return; return;
@@ -385,7 +385,7 @@ do { \
static void static void
print_grammar (FILE *out) print_grammar (FILE *out)
{ {
token_number_t i; symbol_number_t i;
int j; int j;
item_number_t *rule; item_number_t *rule;
char buffer[90]; char buffer[90];
@@ -422,7 +422,7 @@ print_grammar (FILE *out)
for (j = 1; j < nrules + 1; j++) for (j = 1; j < nrules + 1; j++)
for (rule = rules[j].rhs; *rule >= 0; rule++) for (rule = rules[j].rhs; *rule >= 0; rule++)
if (item_number_as_token_number (*rule) == token_translations[i]) if (item_number_as_symbol_number (*rule) == token_translations[i])
{ {
END_TEST (65); END_TEST (65);
sprintf (buffer + strlen (buffer), " %d", j - 1); sprintf (buffer + strlen (buffer), " %d", j - 1);
@@ -443,7 +443,7 @@ print_grammar (FILE *out)
if (rules[j].lhs->number == i) if (rules[j].lhs->number == i)
left_count++; left_count++;
for (rule = rules[j].rhs; *rule >= 0; rule++) for (rule = rules[j].rhs; *rule >= 0; rule++)
if (item_number_as_token_number (*rule) == i) if (item_number_as_symbol_number (*rule) == i)
{ {
right_count++; right_count++;
break; break;
@@ -478,7 +478,7 @@ print_grammar (FILE *out)
for (j = 1; j < nrules + 1; j++) for (j = 1; j < nrules + 1; j++)
{ {
for (rule = rules[j].rhs; *rule >= 0; rule++) for (rule = rules[j].rhs; *rule >= 0; rule++)
if (item_number_as_token_number (*rule) == i) if (item_number_as_symbol_number (*rule) == i)
{ {
END_TEST (65); END_TEST (65);
sprintf (buffer + strlen (buffer), " %d", j - 1); sprintf (buffer + strlen (buffer), " %d", j - 1);

View File

@@ -140,7 +140,7 @@ print_actions (state_t *state, const char *node_name)
if (!SHIFT_IS_DISABLED (shiftp, i)) if (!SHIFT_IS_DISABLED (shiftp, i))
{ {
int state1 = shiftp->shifts[i]; int state1 = shiftp->shifts[i];
token_number_t symbol = states[state1]->accessing_symbol; symbol_number_t symbol = states[state1]->accessing_symbol;
new_edge (&edge); new_edge (&edge);

View File

@@ -1693,7 +1693,7 @@ token_translations_init (void)
max_user_token_number = this->user_token_number; max_user_token_number = this->user_token_number;
} }
token_translations = XCALLOC (token_number_t, max_user_token_number + 1); token_translations = XCALLOC (symbol_number_t, max_user_token_number + 1);
/* Initialize all entries for literal tokens to 2, the internal /* Initialize all entries for literal tokens to 2, the internal
token number for $undefined., which represents all invalid token number for $undefined., which represents all invalid
@@ -1762,9 +1762,9 @@ packgram (void)
p = p->next; p = p->next;
while (p && p->sym) while (p && p->sym)
{ {
/* item_number_t = token_number_t. /* item_number_t = symbol_number_t.
But the former needs to contain more: negative rule numbers. */ But the former needs to contain more: negative rule numbers. */
ritem[itemno++] = token_number_as_item_number (p->sym->number); ritem[itemno++] = symbol_number_as_item_number (p->sym->number);
/* A rule gets by default the precedence and associativity /* A rule gets by default the precedence and associativity
of the last token in it. */ of the last token in it. */
if (p->sym->class == token_sym) if (p->sym->class == token_sym)

View File

@@ -278,12 +278,12 @@ reduce_grammar_tables (void)
static void static void
nonterminals_reduce (void) nonterminals_reduce (void)
{ {
token_number_t i, n; symbol_number_t i, n;
/* Map the nonterminals to their new index: useful first, useless /* Map the nonterminals to their new index: useful first, useless
afterwards. Kept for later report. */ afterwards. Kept for later report. */
token_number_t *nontermmap = XCALLOC (token_number_t, nvars) - ntokens; symbol_number_t *nontermmap = XCALLOC (symbol_number_t, nvars) - ntokens;
n = ntokens; n = ntokens;
for (i = ntokens; i < nsyms; i++) for (i = ntokens; i < nsyms; i++)
if (bitset_test (V, i)) if (bitset_test (V, i))
@@ -313,7 +313,7 @@ nonterminals_reduce (void)
item_number_t *rhsp; item_number_t *rhsp;
for (rhsp = rules[r].rhs; *rhsp >= 0; ++rhsp) for (rhsp = rules[r].rhs; *rhsp >= 0; ++rhsp)
if (ISVAR (*rhsp)) if (ISVAR (*rhsp))
*rhsp = token_number_as_item_number (nontermmap[*rhsp]); *rhsp = symbol_number_as_item_number (nontermmap[*rhsp]);
} }
start_symbol = nontermmap[start_symbol]; start_symbol = nontermmap[start_symbol];
} }

View File

@@ -171,7 +171,7 @@ typedef struct state_s
struct state_s *link; struct state_s *link;
short number; short number;
token_number_t accessing_symbol; symbol_number_t accessing_symbol;
shifts *shifts; shifts *shifts;
reductions *reductions; reductions *reductions;
errs *errs; errs *errs;

View File

@@ -43,7 +43,7 @@ typedef enum
/* Internal token numbers. */ /* Internal token numbers. */
typedef short token_number_t; typedef short symbol_number_t;
typedef struct symbol_s symbol_t; typedef struct symbol_s symbol_t;
@@ -54,7 +54,7 @@ struct symbol_s
/* Its type. */ /* Its type. */
char *type_name; char *type_name;
token_number_t number; symbol_number_t number;
short prec; short prec;
associativity assoc; associativity assoc;
int user_token_number; int user_token_number;
@@ -76,7 +76,7 @@ struct symbol_s
#define USER_NUMBER_ALIAS -9991 #define USER_NUMBER_ALIAS -9991
/* Undefined internal token number. */ /* Undefined internal token number. */
#define NUMBER_UNDEFINED ((token_number_t) -1) #define NUMBER_UNDEFINED ((symbol_number_t) -1)
/* A function to apply to each symbol. */ /* A function to apply to each symbol. */