]> git.saurik.com Git - bison.git/blobdiff - src/reader.c
Use "look-ahead" instead of "lookahead", consistently.
[bison.git] / src / reader.c
index e90cd2d73b315372556f7e09f51f491bc069aafa..1cd035cce245f06289f16db55fad9e41136eb208 100644 (file)
@@ -1,5 +1,6 @@
 /* Input parser for Bison
 /* Input parser for Bison
-   Copyright (C) 1984, 1986, 1989, 1992, 1998, 2000, 2001, 2002
+
+   Copyright (C) 1984, 1986, 1989, 1992, 1998, 2000, 2001, 2002, 2003
    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.
 #include "symtab.h"
 
 static symbol_list *grammar = NULL;
 #include "symtab.h"
 
 static symbol_list *grammar = NULL;
-static int start_flag = 0;
+static bool start_flag = false;
 merger_list *merge_functions;
 
 merger_list *merge_functions;
 
-/* Nonzero if %union has been seen.  */
-int typed = 0;
+/* Has %union been seen?  */
+bool typed = false;
+
+/* Should rules have a default precedence?  */
+bool default_prec = true;
 \f
 /*-----------------------.
 | Set the start symbol.  |
 `-----------------------*/
 
 void
 \f
 /*-----------------------.
 | Set the start symbol.  |
 `-----------------------*/
 
 void
-grammar_start_symbol_set (symbol *s, location loc)
+grammar_start_symbol_set (symbol *sym, location loc)
 {
   if (start_flag)
     complain_at (loc, _("multiple %s declarations"), "%start");
   else
     {
 {
   if (start_flag)
     complain_at (loc, _("multiple %s declarations"), "%start");
   else
     {
-      start_flag = 1;
-      startsymbol = s;
+      start_flag = true;
+      startsymbol = sym;
       startsymbol_location = loc;
     }
 }
       startsymbol_location = loc;
     }
 }
@@ -77,29 +81,6 @@ prologue_augment (const char *prologue, location loc)
   obstack_sgrow (oout, prologue);
 }
 
   obstack_sgrow (oout, prologue);
 }
 
-
-
-
-/*----------------------.
-| Handle the epilogue.  |
-`----------------------*/
-
-void
-epilogue_augment (const char *epilogue, location loc)
-{
-  char *extension = NULL;
-  obstack_fgrow1 (&muscle_obstack, "]b4_syncline([[%d]], [[", loc.start.line);
-  MUSCLE_OBSTACK_SGROW (&muscle_obstack,
-                       quotearg_style (c_quoting_style, loc.start.file));
-  obstack_sgrow (&muscle_obstack, "]])[\n");
-  obstack_sgrow (&muscle_obstack, epilogue);
-  obstack_1grow (&muscle_obstack, 0);
-  extension = obstack_finish (&muscle_obstack);
-  muscle_grow ("epilogue", extension, "");
-  obstack_free (&muscle_obstack, extension);
-}
-
-
 \f
 
 /*-------------------------------------------------------------------.
 \f
 
 /*-------------------------------------------------------------------.
@@ -127,7 +108,7 @@ get_merge_function (uniqstr name, uniqstr type, location loc)
       break;
   if (syms->next == NULL)
     {
       break;
   if (syms->next == NULL)
     {
-      syms->next = XMALLOC (merger_list, 1);
+      MALLOC (syms->next, 1);
       syms->next->name = uniqstr_new (name);
       syms->next->type = uniqstr_new (type);
       syms->next->next = NULL;
       syms->next->name = uniqstr_new (name);
       syms->next->type = uniqstr_new (type);
       syms->next->next = NULL;
@@ -180,7 +161,7 @@ free_merger_functions (void)
 /* The (currently) last symbol of GRAMMAR. */
 symbol_list *grammar_end = NULL;
 
 /* The (currently) last symbol of GRAMMAR. */
 symbol_list *grammar_end = NULL;
 
-/* Append S to the GRAMMAR. */
+/* Append SYM to the grammar.  */
 void
 grammar_symbol_append (symbol *sym, location loc)
 {
 void
 grammar_symbol_append (symbol *sym, location loc)
 {
@@ -212,7 +193,7 @@ grammar_rule_begin (symbol *lhs, location loc)
     {
       startsymbol = lhs;
       startsymbol_location = loc;
     {
       startsymbol = lhs;
       startsymbol_location = loc;
-      start_flag = 1;
+      start_flag = true;
     }
 
   /* Start a new rule and record its lhs.  */
     }
 
   /* Start a new rule and record its lhs.  */
@@ -406,8 +387,8 @@ packgram (void)
   rule_number ruleno = 0;
   symbol_list *p = grammar;
 
   rule_number ruleno = 0;
   symbol_list *p = grammar;
 
-  ritem = XCALLOC (item_number, nritems);
-  rules = XCALLOC (rule, nrules);
+  CALLOC (ritem, nritems);
+  CALLOC (rules, nrules);
 
   while (p)
     {
 
   while (p)
     {
@@ -431,7 +412,7 @@ packgram (void)
          ritem[itemno++] = symbol_number_as_item_number (p->sym->number);
          /* A rule gets by default the precedence and associativity
             of the last token in it.  */
          ritem[itemno++] = symbol_number_as_item_number (p->sym->number);
          /* A rule gets by default the precedence and associativity
             of the last token in it.  */
-         if (p->sym->class == token_sym)
+         if (p->sym->class == token_sym && default_prec)
            rules[ruleno].prec = p->sym;
          if (p)
            p = p->next;
            rules[ruleno].prec = p->sym;
          if (p)
            p = p->next;