Go to main content

man pages section 1: User Commands

Exit Print View

Updated: Wednesday, February 9, 2022

bison (1)


bison - GNU Project parser generator (yacc replacement)


bison [OPTION]... FILE


BISON(1)                         User Commands                        BISON(1)

       bison - GNU Project parser generator (yacc replacement)

       bison [OPTION]... FILE

       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.  Moreover, 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

       This description of the options that can be given to bison  is  adapted
       from  the  node  Invocation  in  the bison.texi 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 =.

       Generate a deterministic LR or generalized LR  (GLR)  parser  employing
       LALR(1), IELR(1), or canonical LR(1) parser tables.

       Mandatory  arguments  to  long  options are mandatory for short options
       too.  The same is true for optional arguments.

   Operation Modes:
       -h, --help
              display this help and exit

       -V, --version
              output version information and exit

              output directory containing locale-dependent data and exit

              output directory containing skeletons and XSLT and exit

       -u, --update
              apply fixes to the source grammar file and exit

       -f, --feature[=FEATURES]
              activate miscellaneous features

   FEATURES is a list of comma separated words that can include:
       caret, diagnostics-show-caret
              show errors with carets

       fixit, diagnostics-parseable-fixits
              show machine-readable fixes

              do not generate any file

       all    all of the above

       none   disable all of the above

       -W, --warnings[=CATEGORY]
              report the warnings falling in CATEGORY

              whether to colorize the diagnostics

              specify the CSS FILE for colorizer diagnostics

   Warning categories include:
              S/R conflicts (enabled by default)

              R/R conflicts (enabled by default)

       counterexamples, cex
              generate conflict counterexamples

              string aliases not attached to a symbol

              obsolete constructs

              empty rules without %empty

              unset or unused midrule values

              useless precedence and associativity

       yacc   incompatibilities with POSIX Yacc

       other  all other warnings (enabled by default)

       all    all the warnings except 'counterexamples', 'dangling-alias'  and

              turn off warnings in CATEGORY

       none   turn off all the warnings

              treat warnings as errors

   WHEN can be one of the following:
       always, yes
              colorize the output

       never, no
              don't colorize the output

       auto, tty
              colorize if the output device is a tty

   Tuning the Parser:
       -L, --language=LANGUAGE
              specify the output programming language

       -S, --skeleton=FILE
              specify the skeleton to use

       -t, --debug
              instrument the parser for tracing same as '-Dparse.trace'

              enable location support

       -D, --define=NAME[=VALUE]
              similar to '%define NAME VALUE'

       -F, --force-define=NAME[=VALUE]
              override '%define NAME VALUE'

       -p, --name-prefix=PREFIX
              prepend PREFIX to the external symbols deprecated by '-Dapi.pre-

       -l, --no-lines
              don't generate '#line' directives

       -k, --token-table
              include a table of token names

       -y, --yacc
              emulate POSIX Yacc

   Output Files:
              also produce a header file

       -d     likewise but cannot specify FILE (for POSIX Yacc)

       -r, --report=THINGS
              also produce details on the automaton

              write report to FILE

       -v, --verbose
              same as '--report=state'

       -b, --file-prefix=PREFIX
              specify a PREFIX for output files

       -o, --output=FILE
              leave output to FILE

       -g, --graph[=FILE]
              also output a graph of the automaton

       -x, --xml[=FILE]
              also output an XML report of the automaton

       -M, --file-prefix-map=OLD=NEW replace prefix OLD with NEW when  writing
       file paths
              in output files

   THINGS is a list of comma separated words that can include:
       states describe the states

              complete the core item sets with their closure

              explicitly associate lookahead tokens to items

       solved describe shift/reduce conflicts solving

       counterexamples, cex
              generate conflict counterexamples

       all    include all the above information

       none   disable the report

       Written by Robert Corbett and Richard Stallman.

       Report bugs to <bug-bison@gnu.org>.
       GNU Bison home page: <https://www.gnu.org/software/bison/>.
       General help using GNU software: <http://www.gnu.org/gethelp/>.
       For complete documentation, run: info bison.

       Copyright (C) 2020 Free Software Foundation, Inc.
       This is free software; see the source for copying conditions.  There is
       NO warranty; not even for MERCHANTABILITY or FITNESS FOR  A  PARTICULAR

       See attributes(7) for descriptions of the following attributes:

       |Availability   | developer/parser/bison |
       |Stability      | Pass-through volatile  |

       lex(1), flex(1), yacc(1).

       The full documentation for bison is maintained as a Texinfo manual.  If
       the info and bison programs are properly installed at  your  site,  the

              info bison

       should give you access to the complete manual.

       Source  code  for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-

       This     software     was    built    from    source    available    at
       https://github.com/oracle/solaris-userland.   The  original   community
       source                was                downloaded                from

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

GNU Bison 3.7.3                  October 2020                         BISON(1)