Re: Build problem on OpenBSD MIPS
John Long <[email protected]> Thu, 4 Jul 2013 15:39:24 +0000
| Newsgroups | gmane.comp.debugging.insight |
|---|---|
| Message-ID | <[email protected]> |
On Thu, Jul 04, 2013 at 05:22:30PM +0200, Pierre Muller wrote:
> Maybe it is a problem with the tool that is used
> to generate the c-exp.c from the c-exp.y source.
>
> I have the impression that OpenBSD often tends to still use old GNU tools...
>
> On my successful build,
> c_print_token is used in YYPRINT macro:
>
> $ grep YYPRINT c-*.c -n -A 5
> 398:#define YYPRINT(FILE, TYPE, VALUE) c_print_token (FILE, TYPE, VALUE)
> 399-
> 400-/* Line 390 of yacc.c */
> 401-#line 402 "c-exp.c"
> 402-
> 403-#ifdef short
> --
> 867:# ifdef YYPRINT
> 868-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
> 869- token YYLEX-NUM. */
> 870-static const yytype_uint16 yytoknum[] =
> 871-{
> 872- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
> --
> 1589:# ifdef YYPRINT
> 1590- if (yytype < YYNTOKENS)
> 1591: YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
> 1592-# else
> 1593- YYUSE (yyoutput);
> 1594-# endif
> 1595- switch (yytype)
> 1596- {
> --
> 5989:/* This is called via the YYPRINT macro when parser debugging is
> 5990- enabled. It prints a token's value. */
> 5991-
> 5992-static void
> 5993-c_print_token (FILE *file, int type, YYSTYPE value)
> 5994-{
>
> $ head c-exp.c
> /* A Bison parser, made by GNU Bison 2.7. */
>
> /* Bison implementation for Yacc-like parsers in C
>
> Could you check if YYPRINT is used in your c-exp.c file,
> and which tool was used to create it (it will probably be mentioned
> in the header like here).
>
>
> Pierre Muller
>
Hi, I have no idea what I am doing so I just tried your commands as is. Here
is the output:
grep YYPRINT c-*.c -n -A 5
146:#define YYPRINT(FILE, TYPE, VALUE) c_print_token (FILE, TYPE, VALUE)
147-#line 148 "c-exp.c"
148-#define INT 257
149-#define FLOAT 258
150-#define DECFLOAT 259
151-#define STRING 260
4233:/* This is called via the YYPRINT macro when parser debugging is
4234- enabled. It prints a token's value. */
4235-
4236-static void
4237-c_print_token (FILE *file, int type, YYSTYPE value)
4238-{
user:/tmp/insight-cvs/insight/gdb$
head c-exp.c
#include <stdlib.h>
#include <string.h>
#define YYBYACC 1
#define YYMAJOR 1
#define YYMINOR 9
#define YYLEX yylex()
#define YYEMPTY -1
#define yyclearin (yychar=(YYEMPTY))
#define yyerrok (yyerrflag=0)
#define YYRECOVERING() (yyerrflag!=0)
user:/tmp/insight-cvs/insight/gdb$
I don't see that YYPRINT is used anywhere else in c-exp.c
Does the following suggest this isn't going to be used in a normal build?
/* This is called via the YYPRINT macro when parser debugging is
enabled. It prints a token's value. */
static void
c_print_token (FILE *file, int type, YYSTYPE value)
{
switch (type)
{
case INT:
fprintf (file, "typed_val_int<%s, %s>",
TYPE_SAFE_NAME (value.typed_val_int.type),
Thanks,
/jl