]> git.saurik.com Git - bison.git/blobdiff - src/scan-code.l
Credit Satya for the graphviz change.
[bison.git] / src / scan-code.l
index ec01f354a43e517a6aa6973557c05af03c82a64f..d41c6e46043a6c78e5ed45709f97922b66d0b339 100644 (file)
 %option prefix="code_" outfile="lex.yy.c"
 
 %{
 %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
 /* 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 "flex-scanner.h"
+
+#include "complain.h"
 #include "reader.h"
 #include "getargs.h"
 #include "reader.h"
 #include "getargs.h"
-#include <assert.h>
 #include <get-errno.h>
 #include <quote.h>
 
 #include <get-errno.h>
 #include <quote.h>
 
@@ -45,7 +42,7 @@
 
 /* The current calling start condition: SC_RULE_ACTION or
    SC_SYMBOL_ACTION. */
 
 /* The current calling start condition: SC_RULE_ACTION or
    SC_SYMBOL_ACTION. */
-# define YY_DECL const char *code_lex (int sc_context, symbol_list *rule)
+# define YY_DECL char *code_lex (int sc_context, symbol_list *rule)
 YY_DECL;
 
 #define YY_USER_ACTION  location_compute (loc, &loc->end, yytext, yyleng);
 YY_DECL;
 
 #define YY_USER_ACTION  location_compute (loc, &loc->end, yytext, yyleng);
@@ -81,14 +78,14 @@ splice       (\\[ \f\t\v]*\n)*
 
 %{
   /* Nesting level of the current code in braces.  */
 
 %{
   /* 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. */
 
   /* 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;
 %}
 
   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,
                             _("$$ 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"),
              else
                complain_at (dollar_loc, _("$$ of `%s' has no declared type"),
-                            rule->sym->tag);
+                            rule->content.sym->tag);
            }
          else
            untyped_var_seen = true;
            }
          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"),
            {
              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 = "";
              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;
 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[");
 
   if (*cp == '$')
     obstack_sgrow (&obstack_for_string, "]b4_lhs_location[");
@@ -376,10 +372,10 @@ handle_action_at (symbol_list *rule, char *text, location at_loc)
    translation is for \a rule, in the context \a sc_context
    (SC_RULE_ACTION, SC_SYMBOL_ACTION, INITIAL).  */
 
    translation is for \a rule, in the context \a sc_context
    (SC_RULE_ACTION, SC_SYMBOL_ACTION, INITIAL).  */
 
-static const char *
+static char *
 translate_action (int sc_context, symbol_list *rule, const char *a, location l)
 {
 translate_action (int sc_context, symbol_list *rule, const char *a, location l)
 {
-  const char *res;
+  char *res;
   static bool initialized = false;
   if (!initialized)
     {
   static bool initialized = false;
   if (!initialized)
     {
@@ -398,20 +394,20 @@ translate_action (int sc_context, symbol_list *rule, const char *a, location l)
   return res;
 }
 
   return res;
 }
 
-const char *
+char *
 translate_rule_action (symbol_list *rule)
 {
   return translate_action (SC_RULE_ACTION, rule, rule->action,
                           rule->action_location);
 }
 
 translate_rule_action (symbol_list *rule)
 {
   return translate_action (SC_RULE_ACTION, rule, rule->action,
                           rule->action_location);
 }
 
-const char *
+char *
 translate_symbol_action (const char *a, location l)
 {
   return translate_action (SC_SYMBOL_ACTION, NULL, a, l);
 }
 
 translate_symbol_action (const char *a, location l)
 {
   return translate_action (SC_SYMBOL_ACTION, NULL, a, l);
 }
 
-const char *
+char *
 translate_code (const char *a, location l)
 {
   return translate_action (INITIAL, NULL, a, l);
 translate_code (const char *a, location l)
 {
   return translate_action (INITIAL, NULL, a, l);