On Tue, 4 Dec 2007, Akim Demaille wrote:

> [EMAIL PROTECTED] ~/src/bison $ grep b4_ examples/calc++/calc++-parser.cc
> 21:56:23
> #line 1 "[Bison:b4_percent_define_default]"
> #line 1 "[Bison:b4_percent_define_default]"

With more context:

  % grep -C3 b4_ examples/calc++/calc++-parser.cc


  /* Line 374 of lalr1.cc  */
  #line 1 "[Bison:b4_percent_define_default]"

  namespace yy {

  --


  /* Line 1047 of lalr1.cc  */
  #line 1 "[Bison:b4_percent_define_default]"

  } // yy

It's expanded appropriately.  This is the syncline generated when the user 
does not specify a value for a %define variable (namespace in this case) 
and so a default value is set by Bison's b4_percent_define_default.  The 
brackets were just my way of hinting that it's not a real file name.

I intended that this location for default values would be seen in error 
messages only by Bison developers and skeleton developers.  I guess I 
forgot about it when I implemented synclines for %define variables.  It 
also didn't occur to me that it looks like underexpanded M4.

Should we drop the leading syncline in the case of a default value?  Or 
can we think of a more meaningful file name to report?  What do you think?


Reply via email to