delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/05/12/04:21:11

Xref: news2.mv.net comp.os.msdos.djgpp:3723
From: John Bodfish <johnb AT als DOT ameritech DOT com>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: Problems with BISON
Date: Thu, 09 May 96 18:09:07 PDT
Organization: Northwestern University, Evanston, IL, US
Lines: 52
Message-ID: <NEWTNews.831691900.32553.johnb@johnb.als.ameritech.com>
References: <4mt50i$jba AT newsbf02 DOT news DOT aol DOT com>
NNTP-Posting-Host: n472.als.ameritech.com
Mime-Version: 1.0
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

In article <4mt50i$jba AT newsbf02 DOT news DOT aol DOT com>, <hlgpeter AT aol DOT com> writes:

> I wrote a small parser and wanted BISON to work in debug mode.
> I therefore defined the following:
> 
> %{
> 
> .....
> #define YYDEBUG 1
> 
> %} 
> 
> Bison was also invoked with option -t.
> 
> The problem is that I do not see any debug information. I do not see
> any states at all.
> 
The info for bison says:

   "Once you have compiled the program with trace facilities, the way to
request a trace is to store a nonzero value in the variable `yydebug'.
You can do this by making the C code do it (in `main', perhaps), or you
can alter the value with a C debugger."

I have the following in my *.y file, in place of your #define:

	#ifdef DEBUG
	#define YYERROR_VERBOSE
	#endif

and in main():

	#ifdef DEBUG
	  yydebug = 1;
	#endif

Finally I use the --debug option (and the -v option is helpful;
again, consult the info file) on the bison command line (which
causes bison to emit a definition for YYDEBUG) and I define DEBUG
on the compiler command line with "-DDEBUG". This seems to work
fine; here's the kind of trace info I get:

Starting parse
Entering state 0
Reading a token: --(end of buffer or a NUL)
--accepting rule at line 255 ("; This is file DOUTILS.ASM
")
Next token is 264 (COMMENT)

John

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019