]> git.saurik.com Git - bison.git/blobdiff - src/state.h
Sync.
[bison.git] / src / state.h
index 6b0a3de1e6711a62ebd5448a531f716f6b24beff..440cd466bf2a67e51cbe93093f221c5f079afb1e 100644 (file)
@@ -1,7 +1,7 @@
-/* Type definitions for nondeterministic finite state machine for bison,
+/* Type definitions for nondeterministic finite state machine for Bison.
 
 
-   Copyright (C) 1984, 1989, 2000, 2001, 2002 Free Software
-   Foundation, Inc.
+   Copyright (C) 1984, 1989, 2000, 2001, 2002, 2003, 2004 Free
+   Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
 
 
    This file is part of Bison, the GNU Compiler Compiler.
 
@@ -17,8 +17,8 @@
 
    You should have received a copy of the GNU General Public License
    along with Bison; see the file COPYING.  If not, write to
 
    You should have received a copy of the GNU General Public License
    along with Bison; see the file COPYING.  If not, write to
-   the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
 
 
 /* These type definitions are used to represent a nondeterministic
 
 
 /* These type definitions are used to represent a nondeterministic
    Each core contains a vector of NITEMS items which are the indices
    in the RITEMS vector of the items that are selected in this state.
 
    Each core contains a vector of NITEMS items which are the indices
    in the RITEMS vector of the items that are selected in this state.
 
-   The two types of actions are shifts/gotos (push the lookahead token
+   The two types of actions are shifts/gotos (push the look-ahead token
    and read another/goto to the state designated by a nterm) and
    reductions (combine the last n things on the stack via a rule,
    replace them with the symbol that the rule derives, and leave the
    and read another/goto to the state designated by a nterm) and
    reductions (combine the last n things on the stack via a rule,
    replace them with the symbol that the rule derives, and leave the
-   lookahead token alone).  When the states are generated, these
+   look-ahead token alone).  When the states are generated, these
    actions are represented in two other lists.
 
    Each transition structure describes the possible transitions out
    actions are represented in two other lists.
 
    Each transition structure describes the possible transitions out
 | Numbering states.  |
 `-------------------*/
 
 | Numbering states.  |
 `-------------------*/
 
-typedef short state_number;
-# define STATE_NUMBER_MAXIMUM SHRT_MAX
+typedef int state_number;
+# define STATE_NUMBER_MAXIMUM INT_MAX
 
 /* Be ready to map a state_number to an int.  */
 
 /* Be ready to map a state_number to an int.  */
-# define state_number_as_int(Tok) ((int) (Tok))
+static inline int
+state_number_as_int (state_number s)
+{
+  return s;
+}
 
 
 typedef struct state state;
 
 
 typedef struct state state;
@@ -109,7 +113,7 @@ typedef struct state state;
 
 typedef struct
 {
 
 typedef struct
 {
-  short num;
+  int num;
   state *states[1];
 } transitions;
 
   state *states[1];
 } transitions;
 
@@ -156,9 +160,9 @@ typedef struct
     if (!TRANSITION_IS_DISABLED (Transitions, Iter))
 
 
     if (!TRANSITION_IS_DISABLED (Transitions, Iter))
 
 
-/* Return the state such SHIFTS contain a shift/goto to it on S.
+/* Return the state such SHIFTS contain a shift/goto to it on SYM.
    Abort if none found.  */
    Abort if none found.  */
-struct state *transitions_to (transitions *shifts, symbol_number s);
+struct state *transitions_to (transitions *shifts, symbol_number sym);
 
 
 /*-------.
 
 
 /*-------.
@@ -167,7 +171,7 @@ struct state *transitions_to (transitions *shifts, symbol_number s);
 
 typedef struct
 {
 
 typedef struct
 {
-  short num;
+  int num;
   symbol *symbols[1];
 } errs;
 
   symbol *symbols[1];
 } errs;
 
@@ -180,8 +184,8 @@ errs *errs_new (int num, symbol **tokens);
 
 typedef struct
 {
 
 typedef struct
 {
-  short num;
-  bitset *lookaheads;
+  int num;
+  bitset *look_ahead_tokens;
   rule *rules[1];
 } reductions;
 
   rule *rules[1];
 } reductions;
 
@@ -199,7 +203,7 @@ struct state
   reductions *reductions;
   errs *errs;
 
   reductions *reductions;
   errs *errs;
 
-  /* Nonzero if no lookahead is needed to decide what to do in state S.  */
+  /* Nonzero if no look-ahead is needed to decide what to do in state S.  */
   char consistent;
 
   /* If some conflicts were solved thanks to precedence/associativity,
   char consistent;
 
   /* If some conflicts were solved thanks to precedence/associativity,
@@ -208,7 +212,7 @@ struct state
 
   /* 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;
+  size_t nitems;
   item_number items[1];
 };
 
   item_number items[1];
 };
 
@@ -230,9 +234,9 @@ int state_reduction_find (state *s, rule *r);
 /* Set the errs of STATE.  */
 void state_errs_set (state *s, int num, symbol **errors);
 
 /* Set the errs of STATE.  */
 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 look-ahead tokens such that this STATE wants to
    reduce R.  */
    reduce R.  */
-void state_rule_lookaheads_print (state *s, rule *r, FILE *out);
+void state_rule_look_ahead_tokens_print (state *s, rule *r, FILE *out);
 
 /* Create/destroy the states hash table.  */
 void state_hash_new (void);
 
 /* Create/destroy the states hash table.  */
 void state_hash_new (void);