%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>
/* 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);
%{
/* 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;
%}
_("$$ 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;
{
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 = "";
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[");
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)
{
- const char *res;
+ char *res;
static bool initialized = false;
if (!initialized)
{
return res;
}
-const char *
+char *
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);
}
-const char *
+char *
translate_code (const char *a, location l)
{
return translate_action (INITIAL, NULL, a, l);