YYPRINT
MacroBefore %printer
support, semantic values could be displayed using the
YYPRINT
macro, which works only for terminal symbols and only with
the yacc.c skeleton.
If you define
YYPRINT
, it should take three arguments. The parser will pass a standard I/O stream, the numeric code for the token type, and the token value (fromyylval
).For yacc.c only. Obsoleted by
%printer
.
Here is an example of YYPRINT
suitable for the multi-function
calculator (see Declarations for mfcalc
):
%{ static void print_token_value (FILE *, int, YYSTYPE); #define YYPRINT(File, Type, Value) \ print_token_value (File, Type, Value) %} ... %% ... %% ... static void print_token_value (FILE *file, int type, YYSTYPE value) { if (type == VAR) fprintf (file, "%s", value.tptr->name); else if (type == NUM) fprintf (file, "%d", value.val); }