]> git.saurik.com Git - bison.git/blobdiff - src/gram.h
Use some of gnulib's new modules, taken from coreutils.
[bison.git] / src / gram.h
index e7cf33d6997c4cef872ecfd8d9f99af4c445410d..3b742d565e8be947365dccc14b6561b140bd5c3b 100644 (file)
@@ -1,6 +1,6 @@
 /* Data definitions for internal representation of Bison's input.
 
 /* Data definitions for internal representation of Bison's input.
 
-   Copyright (C) 1984, 1986, 1989, 1992, 2001, 2002
+   Copyright (C) 1984, 1986, 1989, 1992, 2001, 2002, 2003, 2004, 2005, 2006
    Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
    Free Software Foundation, Inc.
 
    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.  */
 
 #ifndef GRAM_H_
 # define GRAM_H_
 
 #ifndef GRAM_H_
 # define GRAM_H_
 # include "location.h"
 # include "symtab.h"
 
 # include "location.h"
 # include "symtab.h"
 
-# define ISTOKEN(s)    ((s) < ntokens)
-# define ISVAR(s)      ((s) >= ntokens)
+# define ISTOKEN(i)    ((i) < ntokens)
+# define ISVAR(i)      ((i) >= ntokens)
 
 extern int nsyms;
 extern int ntokens;
 extern int nvars;
 
 typedef int item_number;
 
 extern int nsyms;
 extern int ntokens;
 extern int nvars;
 
 typedef int item_number;
+#define ITEM_NUMBER_MAX INT_MAX
 extern item_number *ritem;
 extern unsigned int nritems;
 
 extern item_number *ritem;
 extern unsigned int nritems;
 
@@ -127,9 +128,9 @@ extern unsigned int nritems;
    sometimes have to perform the converse transformation.  */
 
 static inline item_number
    sometimes have to perform the converse transformation.  */
 
 static inline item_number
-symbol_number_as_item_number (symbol_number s)
+symbol_number_as_item_number (symbol_number sym)
 {
 {
-  return s;
+  return sym;
 }
 
 static inline symbol_number
 }
 
 static inline symbol_number
@@ -138,10 +139,15 @@ item_number_as_symbol_number (item_number i)
   return i;
 }
 
   return i;
 }
 
-extern symbol_number start_symbol;
+static inline bool
+item_number_is_symbol_number (item_number i)
+{
+  return i >= 0;
+}
 
 /* Rule numbers.  */
 
 /* Rule numbers.  */
-typedef short rule_number;
+typedef int rule_number;
+#define RULE_NUMBER_MAX INT_MAX
 extern rule_number nrules;
 
 static inline item_number
 extern rule_number nrules;
 
 static inline item_number
@@ -156,6 +162,11 @@ item_number_as_rule_number (item_number i)
   return -1 - i;
 }
 
   return -1 - i;
 }
 
+static inline bool
+item_number_is_rule_number (item_number i)
+{
+  return i < 0;
+}
 
 /*--------.
 | Rules.  |
 
 /*--------.
 | Rules.  |
@@ -177,8 +188,8 @@ typedef struct
   /* This symbol provides both the associativity, and the precedence. */
   symbol *prec;
 
   /* This symbol provides both the associativity, and the precedence. */
   symbol *prec;
 
-  short dprec;
-  short merger;
+  int dprec;
+  int merger;
 
   /* This symbol was attached to the rule via %prec. */
   symbol *precsym;
 
   /* This symbol was attached to the rule via %prec. */
   symbol *precsym;
@@ -233,17 +244,6 @@ extern int max_user_token_number;
 
 
 
 
 
 
-/* GLR_PARSER is nonzero if the input file says to use the GLR
-   (Generalized LR) parser, and to output some additional
-   information used by the GLR algorithm. */
-
-extern int glr_parser;
-
-/* PURE_PARSER is nonzero if should generate a parser that is all pure
-   and reentrant.  */
-
-extern int pure_parser;
-
 /* Dump RITEM for traces. */
 void ritem_print (FILE *out);
 
 /* Dump RITEM for traces. */
 void ritem_print (FILE *out);