help-bison
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Header file of a Bison parser


From: Joel E. Denny
Subject: Re: Header file of a Bison parser
Date: Tue, 24 Oct 2006 18:27:39 -0400 (EDT)

On Tue, 24 Oct 2006, Pupeno wrote:

> I have a Bison parser, parser.y, which generates a C source file, parser.c
> and its header file, parser.h.
> I want to put something in parser.h: the declaration/prototype of a function
> that is in parser.y and ends up in parser.c. This is because this function
> should be usable from other files that use the parser.
> Is there some way to do it ? That is, can I put something in parser.y that
> will end up in parser.h ?

CVS Bison has two directives for writing verbatim code to the parser 
header file.  However, they are still experimental, so I can't promise 
what they'll look like in the next stable release:

1. %requires {CODE} inserts CODE that YYSTYPE and YYLTYPE depend upon.  
That is, it inserts CODE near the top of the parser header file.

2. %provides {CODE} is what you probably want.  It exposes additional 
definitions/declarations in the parser header file.  They could 
potentially depend upon YYSTYPE and YYLTYPE since it inserts CODE near the 
bottom of the parser header file.

The contents of the parser header file are always included in the parser 
code file, so you don't have to repeat CODE.

> Alternatively, can I instead generate it as _parser.h and write my own 
> parser.h (that would include _parser.h).

bison --defines=_parser.h




reply via email to

[Prev in Thread] Current Thread [Next in Thread]