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 ] [ --hh ] [ ----hheellpp ] [ ----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 and exit. --hh ----hheellpp Print a summary of the options to _b_i_s_o_n and exit. --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 .