#include "complain.h"
#include "reader.h"
#include "getargs.h"
-#include <assert.h>
#include <get-errno.h>
#include <quote.h>
%{
/* 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 char *
-translate_action (int sc_context, symbol_list *rule, const char *a, location l)
+static char const *
+translate_action (int sc_context, symbol_list *rule, char const *a, location l)
{
char *res;
static bool initialized = false;
if (!initialized)
{
obstack_init (&obstack_for_string);
- /* The initial buffer, never used. */
- yy_delete_buffer (YY_CURRENT_BUFFER);
yy_flex_debug = 0;
initialized = true;
}
return res;
}
-char *
+char const *
translate_rule_action (symbol_list *rule)
{
return translate_action (SC_RULE_ACTION, rule, rule->action,
rule->action_location);
}
-char *
-translate_symbol_action (const char *a, location l)
+char const *
+translate_symbol_action (char const *a, location l)
{
return translate_action (SC_SYMBOL_ACTION, NULL, a, l);
}
-char *
-translate_code (const char *a, location l)
+char const *
+translate_code (char const *a, location l)
{
return translate_action (INITIAL, NULL, a, l);
}
{
obstack_free (&obstack_for_string, 0);
/* Reclaim Flex's buffers. */
- yy_delete_buffer (YY_CURRENT_BUFFER);
+ yylex_destroy ();
}