(state_number): Renamed from state_number_t.

(struct state): Renamed from struct state_s.
(state): Renamed from state_t.
(transitions): Renamed from transitions_t.  Unused (and
misspelled) transtion_s tag removed.
(errs): Renamed from errs_t.  Unused errs_s tag removed.
(reductions): Renamed from reductions_t.  Unused tag
reductions_s removed.
(STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
Include "gram.h".
This commit is contained in:
Paul Eggert
2002-12-11 06:50:40 +00:00
parent 353d3eb651
commit 784573d14a

View File

@@ -1,5 +1,7 @@
/* Type definitions for nondeterministic finite state machine for bison, /* Type definitions for nondeterministic finite state machine for bison,
Copyright 1984, 1989, 2000, 2001 Free Software Foundation, Inc.
Copyright (C) 1984, 1989, 2000, 2001, 2002 Free Software
Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler. This file is part of Bison, the GNU Compiler Compiler.
@@ -51,7 +53,7 @@
lookahead token alone). When the states are generated, these lookahead token alone). When the states are generated, these
actions are represented in two other lists. actions are represented in two other lists.
Each transition_t structure describes the possible transitions out Each transition structure describes the possible transitions out
of one state, the state whose number is in the number field. Each of one state, the state whose number is in the number field. Each
contains a vector of numbers of the states that transitions can go contains a vector of numbers of the states that transitions can go
to. The accessing_symbol fields of those states' cores say what to. The accessing_symbol fields of those states' cores say what
@@ -82,31 +84,34 @@
#ifndef STATE_H_ #ifndef STATE_H_
# define STATE_H_ # define STATE_H_
# include "bitset.h" # include <bitset.h>
# include "gram.h"
# include "symtab.h"
/*-------------------. /*-------------------.
| Numbering states. | | Numbering states. |
`-------------------*/ `-------------------*/
typedef short state_number_t; typedef short state_number;
# define STATE_NUMBER_MAX ((state_number_t) SHRT_MAX) # define STATE_NUMBER_MAXIMUM SHRT_MAX
/* Be ready to map a state_number_t to an int. */ /* Be ready to map a state_number to an int. */
# define state_number_as_int(Tok) ((int) (Tok)) # define state_number_as_int(Tok) ((int) (Tok))
typedef struct state_s state_t; typedef struct state state;
/*--------------. /*--------------.
| Transitions. | | Transitions. |
`--------------*/ `--------------*/
typedef struct transtion_s typedef struct
{ {
short num; short num;
state_t *states[1]; state *states[1];
} transitions_t; } transitions;
/* What is the symbol labelling the transition to /* What is the symbol labelling the transition to
@@ -151,49 +156,48 @@ typedef struct transtion_s
if (!TRANSITION_IS_DISABLED (Transitions, Iter)) if (!TRANSITION_IS_DISABLED (Transitions, Iter))
/* Return the state such these TRANSITIONS contain a shift/goto to it on /* Return the state such SHIFTS contain a shift/goto to it on S.
SYMBOL. Aborts if none found. */ Abort if none found. */
struct state_s; struct state *transitions_to (transitions *shifts, symbol_number s);
struct state_s *transitions_to (transitions_t *state, symbol_number_t s);
/*-------. /*-------.
| Errs. | | Errs. |
`-------*/ `-------*/
typedef struct errs_s typedef struct
{ {
short num; short num;
symbol_t *symbols[1]; symbol *symbols[1];
} errs_t; } errs;
errs_t *errs_new (int num, symbol_t **tokens); errs *errs_new (int num, symbol **tokens);
/*-------------. /*-------------.
| Reductions. | | Reductions. |
`-------------*/ `-------------*/
typedef struct reductions_s typedef struct
{ {
short num; short num;
bitset *lookaheads; bitset *lookaheads;
rule_t *rules[1]; rule *rules[1];
} reductions_t; } reductions;
/*---------. /*---------.
| States. | | states. |
`---------*/ `---------*/
struct state_s struct state
{ {
state_number_t number; state_number number;
symbol_number_t accessing_symbol; symbol_number accessing_symbol;
transitions_t *transitions; transitions *transitions;
reductions_t *reductions; reductions *reductions;
errs_t *errs; errs *errs;
/* Nonzero if no lookahead is needed to decide what to do in state S. */ /* Nonzero if no lookahead is needed to decide what to do in state S. */
char consistent; char consistent;
@@ -205,30 +209,30 @@ struct state_s
/* Its items. Must be last, since ITEMS can be arbitrarily large. /* Its items. Must be last, since ITEMS can be arbitrarily large.
*/ */
unsigned short nitems; unsigned short nitems;
item_number_t items[1]; item_number items[1];
}; };
extern state_number_t nstates; extern state_number nstates;
extern state_t *final_state; extern state *final_state;
/* Create a new state with ACCESSING_SYMBOL for those items. */ /* Create a new state with ACCESSING_SYMBOL for those items. */
state_t *state_new (symbol_number_t accessing_symbol, state *state_new (symbol_number accessing_symbol,
size_t core_size, item_number_t *core); size_t core_size, item_number *core);
/* Set the transitions of STATE. */ /* Set the transitions of STATE. */
void state_transitions_set (state_t *state, int num, state_t **transitions); void state_transitions_set (state *s, int num, state **trans);
/* Set the reductions of STATE. */ /* Set the reductions of STATE. */
void state_reductions_set (state_t *state, int num, rule_t **reductions); void state_reductions_set (state *s, int num, rule **reds);
int state_reduction_find (state_t *state, rule_t *rule); int state_reduction_find (state *s, rule *r);
/* Set the errs of STATE. */ /* Set the errs of STATE. */
void state_errs_set (state_t *state, int num, symbol_t **errs); void state_errs_set (state *s, int num, symbol **errors);
/* Print on OUT all the lookaheads such that this STATE wants to /* Print on OUT all the lookaheads such that this STATE wants to
reduce this RULE. */ reduce R. */
void state_rule_lookaheads_print (state_t *state, rule_t *rule, FILE *out); void state_rule_lookaheads_print (state *s, rule *r, FILE *out);
/* Create/destroy the states hash table. */ /* Create/destroy the states hash table. */
void state_hash_new (void); void state_hash_new (void);
@@ -236,13 +240,13 @@ void state_hash_free (void);
/* Find the state associated to the CORE, and return it. If it does /* Find the state associated to the CORE, and return it. If it does
not exist yet, return NULL. */ not exist yet, return NULL. */
state_t *state_hash_lookup (size_t core_size, item_number_t *core); state *state_hash_lookup (size_t core_size, item_number *core);
/* Insert STATE in the state hash table. */ /* Insert STATE in the state hash table. */
void state_hash_insert (state_t *state); void state_hash_insert (state *s);
/* All the states, indexed by the state number. */ /* All the states, indexed by the state number. */
extern state_t **states; extern state **states;
/* Free all the states. */ /* Free all the states. */
void states_free (void); void states_free (void);