]> git.saurik.com Git - bison.git/blobdiff - src/scan-code.l
Use some of gnulib's new modules, taken from coreutils.
[bison.git] / src / scan-code.l
index 4fc0664e8d3e367c2b141805d7e479dd1389a11d..d41c6e46043a6c78e5ed45709f97922b66d0b339 100644 (file)
 %option prefix="code_" outfile="lex.yy.c"
 
 %{
-#include <config.h>
-#include "system.h"
-
 /* Work around a bug in flex 2.5.31.  See Debian bug 333231
    <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>.  */
 #undef code_wrap
 #define code_wrap() 1
 
 #define FLEX_PREFIX(Id) code_ ## Id
-#include "complain.h"
 #include "flex-scanner.h"
+
+#include "complain.h"
 #include "reader.h"
 #include "getargs.h"
-#include <assert.h>
 #include <get-errno.h>
 #include <quote.h>
 
@@ -81,14 +78,14 @@ splice       (\\[ \f\t\v]*\n)*
 
 %{
   /* Nesting level of the current code in braces.  */
-  int braces_level IF_LINT (= 0);
+  int braces_level = 0;
 
   /* This scanner is special: it is invoked only once, henceforth
      is expected to return only once.  This initialization is
      therefore done once per action to translate. */
-  assert (sc_context == SC_SYMBOL_ACTION
-         || sc_context == SC_RULE_ACTION
-         || sc_context == INITIAL);
+  aver (sc_context == SC_SYMBOL_ACTION
+       || sc_context == SC_RULE_ACTION
+       || sc_context == INITIAL);
   BEGIN sc_context;
 %}
 
@@ -284,10 +281,10 @@ handle_action_dollar (symbol_list *rule, char *text, location dollar_loc)
                             _("$$ for the midrule at $%d of `%s'"
                               " has no declared type"),
                             rule->midrule_parent_rhs_index,
-                            effective_rule->sym->tag);
+                            effective_rule->content.sym->tag);
              else
                complain_at (dollar_loc, _("$$ of `%s' has no declared type"),
-                            rule->sym->tag);
+                            rule->content.sym->tag);
            }
          else
            untyped_var_seen = true;
@@ -315,7 +312,7 @@ handle_action_dollar (symbol_list *rule, char *text, location dollar_loc)
            {
              if (union_seen | tag_seen)
                complain_at (dollar_loc, _("$%d of `%s' has no declared type"),
-                            n, effective_rule->sym->tag);
+                            n, effective_rule->content.sym->tag);
              else
                untyped_var_seen = true;
              type_name = "";
@@ -341,13 +338,12 @@ static void
 handle_action_at (symbol_list *rule, char *text, location at_loc)
 {
   char *cp = text + 1;
-  locations_flag = true;
-  int effective_rule_length;
+  int effective_rule_length =
+    (rule->midrule_parent_rule
+     ? rule->midrule_parent_rhs_index - 1
+     : symbol_list_length (rule->next));
 
-  if (rule->midrule_parent_rule)
-    effective_rule_length = rule->midrule_parent_rhs_index - 1;
-  else
-    effective_rule_length = symbol_list_length (rule->next);
+  locations_flag = true;
 
   if (*cp == '$')
     obstack_sgrow (&obstack_for_string, "]b4_lhs_location[");