


BISON(1)                                                 BISON(1)


NNAAMMEE
       bison - GNU Project parser generator (yacc replacement)

SSYYNNOOPPSSIISS
       bbiissoonn  [  --bb _f_i_l_e_-_p_r_e_f_i_x ] [ ----ffiillee--pprreeffiixx==_f_i_l_e_-_p_r_e_f_i_x ] [
       --dd ] [ ----ddeeffiinneess ] [ --ll ] [ ----nnoo--lliinneess ] [ --oo _o_u_t_f_i_l_e ]  [
       ----oouuttppuutt--ffiillee==_o_u_t_f_i_l_e   ]   [   --pp   _p_r_e_f_i_x  ]  [  ----nnaammee--
       pprreeffiixx==_p_r_e_f_i_x ] [ --tt ] [ ----ddeebbuugg ] [ --vv ] [ ----vveerrbboossee ]  [
       --VV  ]  [  ----vveerrssiioonn  ] [ --yy ] [ ----yyaacccc ] [ ----ffiixxeedd--oouuttppuutt--
       ffiilleess ] file

DDEESSCCRRIIPPTTIIOONN
       _B_i_s_o_n is a parser generator in the style of  _y_a_c_c(1).   It
       should  be  upwardly  compatible with input files designed
       for _y_a_c_c.

       Input files should follow the _y_a_c_c convention of ending in
       ..yy.   Unlike  _y_a_c_c,  the generated files do not have fixed
       names, but instead use the prefix of the input file.   For
       instance,  a  grammar description file named ppaarrssee..yy would
       produce the generated parser in a file named  ppaarrssee..ttaabb..cc,
       instead of _y_a_c_c's yy..ttaabb..cc.

       This description of the options that can be given to _b_i_s_o_n
       is adapted from the node IInnvvooccaattiioonn in  the  bbiissoonn..tteexxiinnffoo
       manual, which should be taken as authoritative.

       _B_i_s_o_n  supports both traditional single-letter options and
       mnemonic long option names.  Long option names  are  indi-
       cated  with  ----  instead  of  --.  Abbreviations for option
       names are allowed as long as they are unique.  When a long
       option  takes an argument, like ----ffiillee--pprreeffiixx, connect the
       option name and the argument with ==.

   OOPPTTIIOONNSS
       --bb _f_i_l_e_-_p_r_e_f_i_x
       ----ffiillee--pprreeffiixx==_f_i_l_e_-_p_r_e_f_i_x
              Specify a prefix to use for all _b_i_s_o_n  output  file
              names.   The  names are chosen as if the input file
              were named _f_i_l_e_-_p_r_e_f_i_x..cc.

       --dd
       ----ddeeffiinneess
              Write an extra output file containing macro defini-
              tions for the token type names defined in the gram-
              mar and the semantic value type YYYYSSTTYYPPEE, as well as
              a few eexxtteerrnn variable declarations.

              If the parser output file is named _n_a_m_e..cc then this
              file is named _n_a_m_e..hh.

              This output file is essential if you  wish  to  put
              the  definition of yyyylleexx in a separate source file,
              because yyyylleexx needs to be able to  refer  to  token



                              local                             1





BISON(1)                                                 BISON(1)


              type codes and the variable yyyyllvvaall.

       --ll
       ----nnoo--lliinneess
              Don't  put  any  ##lliinnee preprocessor commands in the
              parser file.  Ordinarily _b_i_s_o_n  puts  them  in  the
              parser  file  so  that the C compiler and debuggers
              will associate errors with your  source  file,  the
              grammar file.  This option causes them to associate
              errors with the parser file, treating it  an  inde-
              pendent source file in its own right.

       --oo _o_u_t_f_i_l_e
       ----oouuttppuutt--ffiillee==_o_u_t_f_i_l_e
              Specify the name _o_u_t_f_i_l_e for the parser file.

              The  other output files' names are constructed from
              _o_u_t_f_i_l_e as described under the --vv and --dd  switches.

       --pp _p_r_e_f_i_x
       ----nnaammee--pprreeffiixx==_p_r_e_f_i_x
              Rename  the  external symbols used in the parser so
              that they start with _p_r_e_f_i_x  instead  of  yyyy.   The
              precise  list of symbols renamed is yyyyppaarrssee, yyyylleexx,
              yyyyeerrrroorr, yyyyllvvaall, yyyycchhaarr, and yyyyddeebbuugg.

              For example, if you use  --pp  cc,  the  names  become
              ccppaarrssee, cclleexx, and so on.

       --tt
       ----ddeebbuugg
              Output  a  definition of the macro YYYYDDEEBBUUGG into the
              parser file, so that the debugging  facilities  are
              compiled.

       --vv
       ----vveerrbboossee
              Write  an  extra  output  file  containing  verbose
              descriptions of the parser states and what is  done
              for each type of look-ahead token in that state.

              This  file  also  describes all the conflicts, both
              those resolved by operator precedence and the unre-
              solved ones.

              The  file's  name  is made by removing ..ttaabb..cc or ..cc
              from the parser output file name, and adding  ..oouutt--
              ppuutt instead.

              Therefore,  if  the  input  file is ffoooo..yy, then the
              parser file is called ffoooo..ttaabb..cc by default.   As  a
              consequence,  the  verbose  output  file  is called
              ffoooo..oouuttppuutt.




                              local                             2





BISON(1)                                                 BISON(1)


       --VV
       ----vveerrssiioonn
              Print the version number of _b_i_s_o_n.

       --yy
       ----yyaacccc
       ----ffiixxeedd--oouuttppuutt--ffiilleess
              Equivalent to --oo yy..ttaabb..cc; the parser output file is
              called  yy..ttaabb..cc,  and  the other outputs are called
              yy..oouuttppuutt and yy..ttaabb..hh.  The purpose of  this  switch
              is  to imitate _y_a_c_c's output file name conventions.
              Thus, the following shell script can substitute for
              _y_a_c_c:

              bbiissoonn --yy $$**


       The  long-named options can be introduced with `+' as well
       as `--', for compatibility with previous releases.   Even-
       tually  support  for  `+'  will  be removed, because it is
       incompatible with the POSIX.2 standard.

FFIILLEESS
       /usr/local/lib/bison.simple   simple parser
       /usr/local/lib/bison.hairy    complicated parser

SSEEEE AALLSSOO
       _y_a_c_c(1)
       The  _B_i_s_o_n  _R_e_f_e_r_e_n_c_e  _M_a_n_u_a_l,  included   as   the   file
       bbiissoonn..tteexxiinnffoo in the _b_i_s_o_n source distribution.

DDIIAAGGNNOOSSTTIICCSS
       ``Self explanatory.''
























                              local                             3


