mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
traces: use colors for the semantic values
This makes reading the trace slightly easier. It would be very nice to highlight the "big steps", especially reductions. But this is a private experiment: do not use it. * data/diagnostics.css (value): New. * src/parse-gram.y: Use no delimiters and no c quotation for strings to facilitate debugging. (tron, troff, TRACE): New. Not very elegant, but until there is support for printf-formats in libtextstyle, it shall be enough.
This commit is contained in:
@@ -6,3 +6,5 @@
|
|||||||
.warning { color: purple; }
|
.warning { color: purple; }
|
||||||
.error { color: red; }
|
.error { color: red; }
|
||||||
.note { color: cyan; }
|
.note { color: cyan; }
|
||||||
|
/* Semantic values in Bison's parser traces. */
|
||||||
|
.value { color: green; }
|
||||||
|
|||||||
@@ -544,8 +544,10 @@ m4_if(b4_skeleton, ["yacc.c"],
|
|||||||
YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
|
YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
|
||||||
# endif
|
# endif
|
||||||
]])dnl
|
]])dnl
|
||||||
b4_symbol_actions([printer])[
|
b4_percent_code_get([[pre-printer]])dnl
|
||||||
}
|
b4_symbol_actions([printer])
|
||||||
|
b4_percent_code_get([[post-printer]])dnl
|
||||||
|
[}
|
||||||
|
|
||||||
|
|
||||||
/*---------------------------.
|
/*---------------------------.
|
||||||
|
|||||||
@@ -87,8 +87,8 @@ b4_output_begin([b4_parser_file_name])[
|
|||||||
]])[
|
]])[
|
||||||
]b4_user_pre_prologue[
|
]b4_user_pre_prologue[
|
||||||
]b4_user_post_prologue[
|
]b4_user_post_prologue[
|
||||||
]b4_percent_code_get([[imports]])
|
]b4_percent_code_get([[imports]])[
|
||||||
[/**
|
/**
|
||||||
* A Bison parser, automatically generated from <tt>]m4_bpatsubst(b4_file_name, [^"\(.*\)"$], [\1])[</tt>.
|
* A Bison parser, automatically generated from <tt>]m4_bpatsubst(b4_file_name, [^"\(.*\)"$], [\1])[</tt>.
|
||||||
*
|
*
|
||||||
* @@author LALR (1) parser skeleton written by Paolo Bonzini.
|
* @@author LALR (1) parser skeleton written by Paolo Bonzini.
|
||||||
|
|||||||
@@ -112,6 +112,10 @@
|
|||||||
#define YYTYPE_INT8 int_fast8_t
|
#define YYTYPE_INT8 int_fast8_t
|
||||||
#define YYTYPE_UINT16 uint_fast16_t
|
#define YYTYPE_UINT16 uint_fast16_t
|
||||||
#define YYTYPE_UINT8 uint_fast8_t
|
#define YYTYPE_UINT8 uint_fast8_t
|
||||||
|
|
||||||
|
/* Add style to semantic values in traces. */
|
||||||
|
static void tron (FILE *yyo);
|
||||||
|
static void troff (FILE *yyo);
|
||||||
}
|
}
|
||||||
|
|
||||||
%define api.header.include {"parse-gram.h"}
|
%define api.header.include {"parse-gram.h"}
|
||||||
@@ -202,12 +206,15 @@
|
|||||||
%token TAG_ANY "<*>"
|
%token TAG_ANY "<*>"
|
||||||
%token TAG_NONE "<>"
|
%token TAG_NONE "<>"
|
||||||
|
|
||||||
|
/* Experimental feature, don't rely on it. */
|
||||||
|
%code pre-printer {tron (yyo);}
|
||||||
|
%code post-printer {troff (yyo);}
|
||||||
|
|
||||||
%type <unsigned char> CHAR
|
%type <unsigned char> CHAR
|
||||||
%printer { fputs (char_name ($$), yyo); } <unsigned char>
|
%printer { fputs (char_name ($$), yyo); } <unsigned char>
|
||||||
|
|
||||||
%type <char*> "{...}" "%?{...}" "%{...%}" EPILOGUE STRING
|
%type <char*> "{...}" "%?{...}" "%{...%}" EPILOGUE STRING
|
||||||
%printer { fputs (quotearg_style (c_quoting_style, $$), yyo); } STRING
|
%printer { fputs ($$, yyo); } <char*>
|
||||||
%printer { fprintf (yyo, "{\n%s\n}", $$); } <char*>
|
|
||||||
|
|
||||||
%type <uniqstr>
|
%type <uniqstr>
|
||||||
BRACKETED_ID ID ID_COLON
|
BRACKETED_ID ID ID_COLON
|
||||||
@@ -1054,3 +1061,13 @@ current_lhs (symbol *sym, location loc, named_ref *ref)
|
|||||||
free (current_lhs_named_ref);
|
free (current_lhs_named_ref);
|
||||||
current_lhs_named_ref = ref;
|
current_lhs_named_ref = ref;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void tron (FILE *yyo)
|
||||||
|
{
|
||||||
|
begin_use_class ("value", yyo);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void troff (FILE *yyo)
|
||||||
|
{
|
||||||
|
end_use_class ("value", yyo);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user