{
    "content": [
        {
            "type": "text",
            "text": "# BISON (man)\n\n## NAME\n\nbison - GNU Project parser generator (yacc replacement)\n\n## SYNOPSIS\n\nbison [OPTION]... FILE\n\n## DESCRIPTION\n\nBison  is  a parser generator in the style of yacc(1).  It should be upwardly compatible with\ninput files designed for yacc.\n\n## TLDR\n\n> GNU parser generator.\n\n- Compile a bison definition file:\n  `bison {{path/to/file.y}}`\n- Compile in debug mode, which causes the resulting parser to write additional information to `stdout`:\n  `bison {{-t|--debug}} {{path/to/file.y}}`\n- Specify the output filename:\n  `bison {{-o|--output}} {{path/to/output.c}} {{path/to/file.y}}`\n- Be verbose when compiling:\n  `bison {{-v|--verbose}}`\n\n*Source: tldr-pages*\n\n## Sections\n\n- **NAME**\n- **SYNOPSIS**\n- **DESCRIPTION** (34 subsections)\n- **AUTHOR**\n- **REPORTING BUGS**\n- **COPYRIGHT**\n- **SEE ALSO**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "BISON",
        "section": "",
        "mode": "man",
        "summary": "bison - GNU Project parser generator (yacc replacement)",
        "synopsis": "bison [OPTION]... FILE",
        "tldr_summary": "GNU parser generator.",
        "tldr_examples": [
            {
                "description": "Compile a bison definition file",
                "command": "bison {{path/to/file.y}}"
            },
            {
                "description": "Compile in debug mode, which causes the resulting parser to write additional information to `stdout`",
                "command": "bison {{-t|--debug}} {{path/to/file.y}}"
            },
            {
                "description": "Specify the output filename",
                "command": "bison {{-o|--output}} {{path/to/output.c}} {{path/to/file.y}}"
            },
            {
                "description": "Be verbose when compiling",
                "command": "bison {{-v|--verbose}}"
            }
        ],
        "tldr_source": "official",
        "flags": [
            {
                "flag": "-h",
                "long": "--help",
                "arg": null,
                "description": "display this help and exit"
            },
            {
                "flag": "-V",
                "long": "--version",
                "arg": null,
                "description": "output version information and exit"
            },
            {
                "flag": "",
                "long": "--print-localedir",
                "arg": null,
                "description": "output directory containing locale-dependent data and exit"
            },
            {
                "flag": "",
                "long": "--print-datadir",
                "arg": null,
                "description": "output directory containing skeletons and XSLT and exit"
            },
            {
                "flag": "-u",
                "long": "--update",
                "arg": null,
                "description": "apply fixes to the source grammar file and exit"
            },
            {
                "flag": "-f",
                "long": "--feature",
                "arg": null,
                "description": "activate miscellaneous features"
            },
            {
                "flag": "-W",
                "long": "--warnings",
                "arg": null,
                "description": "report the warnings falling in CATEGORY --color[=WHEN] whether to colorize the diagnostics --style=FILE specify the CSS FILE for colorizer diagnostics"
            },
            {
                "flag": "-L",
                "long": "--language",
                "arg": null,
                "description": "specify the output programming language"
            },
            {
                "flag": "-S",
                "long": "--skeleton",
                "arg": null,
                "description": "specify the skeleton to use"
            },
            {
                "flag": "-t",
                "long": "--debug",
                "arg": null,
                "description": "instrument the parser for tracing same as '-Dparse.trace'"
            },
            {
                "flag": "",
                "long": "--locations",
                "arg": null,
                "description": "enable location support"
            },
            {
                "flag": "-D",
                "long": "--define",
                "arg": "NAME",
                "description": "similar to '%define NAME VALUE'"
            },
            {
                "flag": "-F",
                "long": "--force-define",
                "arg": "NAME",
                "description": "override '%define NAME VALUE'"
            },
            {
                "flag": "-p",
                "long": "--name-prefix",
                "arg": null,
                "description": "prepend PREFIX to the external symbols deprecated by '-Dapi.prefix={PREFIX}'"
            },
            {
                "flag": "-l",
                "long": "--no-lines",
                "arg": null,
                "description": "don't generate '#line' directives"
            },
            {
                "flag": "-k",
                "long": "--token-table",
                "arg": null,
                "description": "include a table of token names"
            },
            {
                "flag": "-y",
                "long": "--yacc",
                "arg": null,
                "description": "emulate POSIX Yacc"
            },
            {
                "flag": "-H",
                "long": "--header",
                "arg": null,
                "description": "also produce a header file"
            },
            {
                "flag": "-d",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-r",
                "long": "--report",
                "arg": null,
                "description": "also produce details on the automaton --report-file=FILE write report to FILE"
            },
            {
                "flag": "-v",
                "long": "--verbose",
                "arg": null,
                "description": "same as '--report=state'"
            },
            {
                "flag": "-b",
                "long": "--file-prefix",
                "arg": null,
                "description": "specify a PREFIX for output files"
            },
            {
                "flag": "-o",
                "long": "--output",
                "arg": null,
                "description": "leave output to FILE"
            },
            {
                "flag": "-g",
                "long": "--graph",
                "arg": null,
                "description": "also output a graph of the automaton --html[=FILE] also output an HTML report of the automaton"
            },
            {
                "flag": "-x",
                "long": "--xml",
                "arg": null,
                "description": "also output an XML report of the automaton"
            },
            {
                "flag": "-M",
                "long": "--file-prefix-map",
                "arg": null,
                "description": "in output files"
            }
        ],
        "examples": [],
        "see_also": [
            {
                "name": "lex",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/lex/1/json"
            },
            {
                "name": "flex",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/flex/1/json"
            },
            {
                "name": "yacc",
                "section": "1",
                "url": "https://www.chedong.com/phpMan.php/man/yacc/1/json"
            }
        ],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 24,
                "subsections": [
                    {
                        "name": "Operation Modes:",
                        "lines": 1
                    },
                    {
                        "name": "-h --help",
                        "lines": 2,
                        "flag": "-h",
                        "long": "--help"
                    },
                    {
                        "name": "-V --version",
                        "lines": 2,
                        "flag": "-V",
                        "long": "--version"
                    },
                    {
                        "name": "--print-localedir",
                        "lines": 2,
                        "long": "--print-localedir"
                    },
                    {
                        "name": "--print-datadir",
                        "lines": 2,
                        "long": "--print-datadir"
                    },
                    {
                        "name": "-u --update",
                        "lines": 2,
                        "flag": "-u",
                        "long": "--update"
                    },
                    {
                        "name": "-f --feature",
                        "lines": 2,
                        "flag": "-f",
                        "long": "--feature"
                    },
                    {
                        "name": "FEATURES is a list of comma separated words that can include:",
                        "lines": 13
                    },
                    {
                        "name": "Diagnostics:",
                        "lines": 1
                    },
                    {
                        "name": "-W --warnings",
                        "lines": 8,
                        "flag": "-W",
                        "long": "--warnings"
                    },
                    {
                        "name": "Warning categories include:",
                        "lines": 38
                    },
                    {
                        "name": "WHEN can be one of the following:",
                        "lines": 9
                    },
                    {
                        "name": "Tuning the Parser:",
                        "lines": 1
                    },
                    {
                        "name": "-L --language",
                        "lines": 2,
                        "flag": "-L",
                        "long": "--language"
                    },
                    {
                        "name": "-S --skeleton",
                        "lines": 2,
                        "flag": "-S",
                        "long": "--skeleton"
                    },
                    {
                        "name": "-t --debug",
                        "lines": 2,
                        "flag": "-t",
                        "long": "--debug"
                    },
                    {
                        "name": "--locations",
                        "lines": 2,
                        "long": "--locations"
                    },
                    {
                        "name": "-D --define=NAME",
                        "lines": 2,
                        "flag": "-D",
                        "long": "--define",
                        "arg": "NAME"
                    },
                    {
                        "name": "-F --force-define=NAME",
                        "lines": 2,
                        "flag": "-F",
                        "long": "--force-define",
                        "arg": "NAME"
                    },
                    {
                        "name": "-p --name-prefix",
                        "lines": 2,
                        "flag": "-p",
                        "long": "--name-prefix"
                    },
                    {
                        "name": "-l --no-lines",
                        "lines": 2,
                        "flag": "-l",
                        "long": "--no-lines"
                    },
                    {
                        "name": "-k --token-table",
                        "lines": 2,
                        "flag": "-k",
                        "long": "--token-table"
                    },
                    {
                        "name": "-y --yacc",
                        "lines": 2,
                        "flag": "-y",
                        "long": "--yacc"
                    },
                    {
                        "name": "Output Files:",
                        "lines": 1
                    },
                    {
                        "name": "-H --header",
                        "lines": 2,
                        "flag": "-H",
                        "long": "--header"
                    },
                    {
                        "name": "-d",
                        "lines": 1,
                        "flag": "-d"
                    },
                    {
                        "name": "-r --report",
                        "lines": 5,
                        "flag": "-r",
                        "long": "--report"
                    },
                    {
                        "name": "-v --verbose",
                        "lines": 2,
                        "flag": "-v",
                        "long": "--verbose"
                    },
                    {
                        "name": "-b --file-prefix",
                        "lines": 2,
                        "flag": "-b",
                        "long": "--file-prefix"
                    },
                    {
                        "name": "-o --output",
                        "lines": 2,
                        "flag": "-o",
                        "long": "--output"
                    },
                    {
                        "name": "-g --graph",
                        "lines": 5,
                        "flag": "-g",
                        "long": "--graph"
                    },
                    {
                        "name": "-x --xml",
                        "lines": 2,
                        "flag": "-x",
                        "long": "--xml"
                    },
                    {
                        "name": "-M --file-prefix-map",
                        "lines": 2,
                        "flag": "-M",
                        "long": "--file-prefix-map"
                    },
                    {
                        "name": "THINGS is a list of comma separated words that can include:",
                        "lines": 17
                    }
                ]
            },
            {
                "name": "AUTHOR",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "REPORTING BUGS",
                "lines": 7,
                "subsections": []
            },
            {
                "name": "COPYRIGHT",
                "lines": 4,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 12,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "bison - GNU Project parser generator (yacc replacement)\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "bison [OPTION]... FILE\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "Bison  is  a parser generator in the style of yacc(1).  It should be upwardly compatible with\ninput files designed for yacc.\n\nInput files should follow the yacc convention of ending in .y.  Unlike  yacc,  the  generated\nfiles  do  not  have fixed names, but instead use the prefix of the input file.  Moreover, if\nyou need to put C++ code in the input file, you can end his  name  by  a  C++-like  extension\n(.ypp or .y++), then bison will follow your extension to name the output file (.cpp or .c++).\nFor instance, a grammar description file named parse.yxx would produce the  generated  parser\nin a file named parse.tab.cxx, instead of yacc's y.tab.c or old Bison version's parse.tab.c.\n\nThis  description  of the options that can be given to bison is adapted from the node Invoca‐‐\ntion in the bison.texi manual, which should be taken as authoritative.\n\nBison supports both traditional single-letter options and mnemonic long option  names.   Long\noption  names are indicated with -- instead of -.  Abbreviations for option names are allowed\nas long as they are unique.  When a long option takes an argument, like  --file-prefix,  con‐\nnect the option name and the argument with =.\n\nGenerate  a  deterministic  LR  or generalized LR (GLR) parser employing LALR(1), IELR(1), or\ncanonical LR(1) parser tables.\n\nMandatory arguments to long options are mandatory for short options too.  The  same  is  true\nfor optional arguments.\n",
                "subsections": [
                    {
                        "name": "Operation Modes:",
                        "content": ""
                    },
                    {
                        "name": "-h --help",
                        "content": "display this help and exit\n",
                        "flag": "-h",
                        "long": "--help"
                    },
                    {
                        "name": "-V --version",
                        "content": "output version information and exit\n",
                        "flag": "-V",
                        "long": "--version"
                    },
                    {
                        "name": "--print-localedir",
                        "content": "output directory containing locale-dependent data and exit\n",
                        "long": "--print-localedir"
                    },
                    {
                        "name": "--print-datadir",
                        "content": "output directory containing skeletons and XSLT and exit\n",
                        "long": "--print-datadir"
                    },
                    {
                        "name": "-u --update",
                        "content": "apply fixes to the source grammar file and exit\n",
                        "flag": "-u",
                        "long": "--update"
                    },
                    {
                        "name": "-f --feature",
                        "content": "activate miscellaneous features\n",
                        "flag": "-f",
                        "long": "--feature"
                    },
                    {
                        "name": "FEATURES is a list of comma separated words that can include:",
                        "content": "caret, diagnostics-show-caret\nshow errors with carets\n\nfixit, diagnostics-parseable-fixits\nshow machine-readable fixes\n\nsyntax-only\ndo not generate any file\n\nall    all of the above\n\nnone   disable all of the above\n"
                    },
                    {
                        "name": "Diagnostics:",
                        "content": ""
                    },
                    {
                        "name": "-W --warnings",
                        "content": "report the warnings falling in CATEGORY\n\n--color[=WHEN]\nwhether to colorize the diagnostics\n\n--style=FILE\nspecify the CSS FILE for colorizer diagnostics\n",
                        "flag": "-W",
                        "long": "--warnings"
                    },
                    {
                        "name": "Warning categories include:",
                        "content": "conflicts-sr\nS/R conflicts (enabled by default)\n\nconflicts-rr\nR/R conflicts (enabled by default)\n\ncounterexamples, cex\ngenerate conflict counterexamples\n\ndangling-alias\nstring aliases not attached to a symbol\n\ndeprecated\nobsolete constructs\n\nempty-rule\nempty rules without %empty\n\nmidrule-values\nunset or unused midrule values\n\nprecedence\nuseless precedence and associativity\n\nyacc   incompatibilities with POSIX Yacc\n\nother  all other warnings (enabled by default)\n\nall    all the warnings except 'counterexamples', 'dangling-alias' and 'yacc'\n\nno-CATEGORY\nturn off warnings in CATEGORY\n\nnone   turn off all the warnings\n\nerror[=CATEGORY]\ntreat warnings as errors\n"
                    },
                    {
                        "name": "WHEN can be one of the following:",
                        "content": "always, yes\ncolorize the output\n\nnever, no\ndon't colorize the output\n\nauto, tty\ncolorize if the output device is a tty\n"
                    },
                    {
                        "name": "Tuning the Parser:",
                        "content": ""
                    },
                    {
                        "name": "-L --language",
                        "content": "specify the output programming language\n",
                        "flag": "-L",
                        "long": "--language"
                    },
                    {
                        "name": "-S --skeleton",
                        "content": "specify the skeleton to use\n",
                        "flag": "-S",
                        "long": "--skeleton"
                    },
                    {
                        "name": "-t --debug",
                        "content": "instrument the parser for tracing same as '-Dparse.trace'\n",
                        "flag": "-t",
                        "long": "--debug"
                    },
                    {
                        "name": "--locations",
                        "content": "enable location support\n",
                        "long": "--locations"
                    },
                    {
                        "name": "-D --define=NAME",
                        "content": "similar to '%define NAME VALUE'\n",
                        "flag": "-D",
                        "long": "--define",
                        "arg": "NAME"
                    },
                    {
                        "name": "-F --force-define=NAME",
                        "content": "override '%define NAME VALUE'\n",
                        "flag": "-F",
                        "long": "--force-define",
                        "arg": "NAME"
                    },
                    {
                        "name": "-p --name-prefix",
                        "content": "prepend PREFIX to the external symbols deprecated by '-Dapi.prefix={PREFIX}'\n",
                        "flag": "-p",
                        "long": "--name-prefix"
                    },
                    {
                        "name": "-l --no-lines",
                        "content": "don't generate '#line' directives\n",
                        "flag": "-l",
                        "long": "--no-lines"
                    },
                    {
                        "name": "-k --token-table",
                        "content": "include a table of token names\n",
                        "flag": "-k",
                        "long": "--token-table"
                    },
                    {
                        "name": "-y --yacc",
                        "content": "emulate POSIX Yacc\n",
                        "flag": "-y",
                        "long": "--yacc"
                    },
                    {
                        "name": "Output Files:",
                        "content": ""
                    },
                    {
                        "name": "-H --header",
                        "content": "also produce a header file\n",
                        "flag": "-H",
                        "long": "--header"
                    },
                    {
                        "name": "-d",
                        "content": "",
                        "flag": "-d"
                    },
                    {
                        "name": "-r --report",
                        "content": "also produce details on the automaton\n\n--report-file=FILE\nwrite report to FILE\n",
                        "flag": "-r",
                        "long": "--report"
                    },
                    {
                        "name": "-v --verbose",
                        "content": "same as '--report=state'\n",
                        "flag": "-v",
                        "long": "--verbose"
                    },
                    {
                        "name": "-b --file-prefix",
                        "content": "specify a PREFIX for output files\n",
                        "flag": "-b",
                        "long": "--file-prefix"
                    },
                    {
                        "name": "-o --output",
                        "content": "leave output to FILE\n",
                        "flag": "-o",
                        "long": "--output"
                    },
                    {
                        "name": "-g --graph",
                        "content": "also output a graph of the automaton\n\n--html[=FILE]\nalso output an HTML report of the automaton\n",
                        "flag": "-g",
                        "long": "--graph"
                    },
                    {
                        "name": "-x --xml",
                        "content": "also output an XML report of the automaton\n",
                        "flag": "-x",
                        "long": "--xml"
                    },
                    {
                        "name": "-M --file-prefix-map",
                        "content": "in output files\n",
                        "flag": "-M",
                        "long": "--file-prefix-map"
                    },
                    {
                        "name": "THINGS is a list of comma separated words that can include:",
                        "content": "states describe the states\n\nitemsets\ncomplete the core item sets with their closure\n\nlookaheads\nexplicitly associate lookahead tokens to items\n\nsolved describe shift/reduce conflicts solving\n\ncounterexamples, cex\ngenerate conflict counterexamples\n\nall    include all the above information\n\nnone   disable the report\n"
                    }
                ]
            },
            "AUTHOR": {
                "content": "Written by Robert Corbett and Richard Stallman.\n",
                "subsections": []
            },
            "REPORTING BUGS": {
                "content": "Report bugs to <bug-bison@gnu.org>.\nGNU Bison home page: <https://www.gnu.org/software/bison/>.\nGeneral help using GNU software: <https://www.gnu.org/gethelp/>.\n\nReport translation bugs to <https://translationproject.org/team/>.\nFor complete documentation, run: info bison.\n",
                "subsections": []
            },
            "COPYRIGHT": {
                "content": "Copyright © 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO warranty; not even\nfor MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n",
                "subsections": []
            },
            "SEE ALSO": {
                "content": "lex(1), flex(1), yacc(1).\n\nThe full documentation for bison is maintained as a Texinfo manual.  If the  info  and  bison\nprograms are properly installed at your site, the command\n\ninfo bison\n\nshould give you access to the complete manual.\n\n\n\nGNU Bison 3.8.2                              March 2022                                     BISON(1)",
                "subsections": []
            }
        }
    }
}