man pages section 1: User Commands

Exit Print View

Updated: July 2014
 
 

bison (1)

Name

bison - GNU Project parser generator (yacc replacement)

Synopsis

bison  [ -b file-prefix ] [ --file-prefix=file-prefix ] [ -d
] [ --defines=defines-file ] [ -g ] [ --graph=graph-file ] [
-k  ] [ --token-table ] [ -l ] [ --no-lines ] [ -n ] [ --no-
parser ] [ -o outfile ] [ --output-file=outfile ] [ -p  pre-
fix  ]  [ --name-prefix=prefix ] [ -t ] [ --debug ] [ -v ] [
--verbose ] [ -V ] [ --version ] [ -y ] [ --yacc ] [ -h ]  [
--help ] [ --fixed-output-files ] file
yacc [ similar options and operands ]

Description




User Commands                                            BISON(1)



NAME
     bison - GNU Project parser generator (yacc replacement)

SYNOPSIS
     bison  [ -b file-prefix ] [ --file-prefix=file-prefix ] [ -d
     ] [ --defines=defines-file ] [ -g ] [ --graph=graph-file ] [
     -k  ] [ --token-table ] [ -l ] [ --no-lines ] [ -n ] [ --no-
     parser ] [ -o outfile ] [ --output-file=outfile ] [ -p  pre-
     fix  ]  [ --name-prefix=prefix ] [ -t ] [ --debug ] [ -v ] [
     --verbose ] [ -V ] [ --version ] [ -y ] [ --yacc ] [ -h ]  [
     --help ] [ --fixed-output-files ] file
     yacc [ similar options and operands ]

DESCRIPTION
     Bison  is  a  parser  generator in the style of yacc(1).  It
     should be upwardly compatible with input files designed  for
     yacc.

     Input  files  should follow the yacc convention of ending in
     .y.  Unlike yacc, the generated  files  do  not  have  fixed
     names,  but instead use the prefix of the input file.  More-
     over, if you need to put C++ code in the input file, you can
     end  his  name  by a C++-like extension (.ypp or .y++), then
     bison will follow your extension to  name  the  output  file
     (.cpp  or  .c++).   For instance, a grammar description file
     named parse.yxx would produce the generated parser in a file
     named  parse.tab.cxx, instead of yacc's y.tab.c or old Bison
     version's parse.tab.c.

     This description of the options that can be given  to  bison
     is  adapted  from  the  node Invocation in the bison.texinfo
     manual, which should be taken as authoritative.

     Bison supports both traditional  single-letter  options  and
     mnemonic long option names.  Long option names are indicated
     with -- instead of -.  Abbreviations for  option  names  are
     allowed  as  long  as  they  are unique.  When a long option
     takes an argument, like --file-prefix,  connect  the  option
     name and the argument with =.

  OPTIONS
     -b file-prefix
     --file-prefix=file-prefix
          Specify  a  prefix  to  use  for  all bison output file
          names.  The names are chosen as if the input file  were
          named file-prefix.c.

     -d
          Write an extra output file containing macro definitions
          for the token type names defined in the grammar and the
          semantic  value  type  YYSTYPE, as well as a few extern
          variable declarations.



SunOS 5.11              Last change: local                      1






User Commands                                            BISON(1)



          If the parser output file is  named  name.c  then  this
          file is named name.h.

          This  output  file  is essential if you wish to put the
          definition of yylex in a separate source file,  because
          yylex needs to be able to refer to token type codes and
          the variable yylval.

     --defines=defines-file
          The behavior of --defines is the same than  -d  option.
          The only difference is that it has an optional argument
          which is the name of the output filename.

     -g
          Output a VCG definition of the LALR(1) grammar  automa-
          ton  computed by Bison.  If the grammar file is foo.y ,
          the VCG output file will be foo.vcg.

     --graph=graph-file
          The behavior of --graph is the  same  than  -g  option.
          The only difference is that it has an optional argument
          which is the name of the output graph filename.

     -k
     --token-table
          This switch causes the name.tab.c output to  include  a
          list  of  token  names in order by their token numbers;
          this is defined in the array yytname.   Also  generated
          are  #defines for YYNTOKENS, YYNNTS, YYNRULES, and YYN-
          STATES.

     -l
     --no-lines
          Don't put any #line preprocessor commands in the parser
          file.  Ordinarily bison 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  independent  source  file  in its own
          right.

     -n
     --no-parser
          Do not generate the parser code into the output; gener-
          ate  only  declarations.  The generated name.tab.c file
          will have only constant declarations.  In  addition,  a
          name.act  file  is generated containing a switch state-
          ment body containing all the translated actions.

     -o outfile
     --output-file=outfile
          Specify the name outfile for the parser file.



SunOS 5.11              Last change: local                      2






User Commands                                            BISON(1)



          The other output files' names are constructed from out-
          file as described under the -v and -d switches.

     -p prefix
     --name-prefix=prefix
          Rename  the external symbols used in the parser so that
          they start with prefix instead of yy.  The precise list
          of  symbols renamed is yyparse, yylex, yyerror, yylval,
          yychar, and yydebug.

          For example, if you use -p c, the names become  cparse,
          clex, and so on.

     -t
     --debug
          In the parser file, define the macro YYDEBUG to 1 if it
          is not already defined, so that the  debugging  facili-
          ties are compiled.

     -v
     --verbose
          Write  an extra output file containing verbose descrip-
          tions 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  unresolved
          ones.

          The  file's  name is made by removing .tab.c or .c from
          the  parser  output  file  name,  and  adding   .output
          instead.

          Therefore,  if the input file is foo.y, then the parser
          file is called foo.tab.c by default.  As a consequence,
          the verbose output file is called foo.output.

     -V
     --version
          Print the version number of bison and exit.

     -h
     --help
          Print a summary of the options to bison and exit.

     -y
     --yacc
     --fixed-output-files
          Equivalent  to  -o  y.tab.c;  the parser output file is
          called y.tab.c, and the other outputs are called y.out-
          put and y.tab.h.  The purpose of this switch is to imi-
          tate yacc's output file name  conventions.   Thus,  the



SunOS 5.11              Last change: local                      3






User Commands                                            BISON(1)



          following  shell  script can substitute for yacc and is
          often installed as yacc:

          bison -y "$@"



ATTRIBUTES
     See  attributes(5)  for  descriptions   of   the   following
     attributes:

     +---------------+------------------------+
     |ATTRIBUTE TYPE |    ATTRIBUTE VALUE     |
     +---------------+------------------------+
     |Availability   | developer/parser/bison |
     +---------------+------------------------+
     |Stability      | Volatile               |
     +---------------+------------------------+
SEE ALSO
     yacc(1)
     The  Bison Reference Manual, included as the file bison.tex-
     info in the bison source distribution.

DIAGNOSTICS
     Self explanatory.



NOTES
     This  software  was   built   from   source   available   at
     https://java.net/projects/solaris-userland.    The  original
     community       source       was       downloaded       from
     http://ftp.gnu.org/gnu/bison/bison-2.3.tar.gz

     Further  information about this software can be found on the
     open source community  website  at  http://www.gnu.org/soft-
     ware/bison/.


















SunOS 5.11              Last change: local                      4