📜  Linux 中的 bison 命令示例

📅  最后修改于: 2022-05-13 01:57:30.433000             🧑  作者: Mango

Linux 中的 bison 命令示例

bison命令是 yacc的替代品。它基本上是一个类似于yacc的解析器生成器。输入文件应遵循以.y格式结尾的 yacc 约定。与yacc类似,生成的文件没有固定名称,而是使用输入文件的前缀。此外,如果您需要将 C++ 代码放入输入文件中,您可以通过类似 C++ 的扩展名作为.ypp.y++来结束他的名字,然后野牛会跟随您的扩展名将输出文件命名为.cpp.c++

句法:

bison [OPTION]... FILE

操作模式:

  • -h, –help :显示此帮助并退出。
  • -V, –version :显示版本信息并退出。
  • –print-localedir :它显示包含区域设置相关数据的目录。
  • –print-datadir :它显示包含骨架和 XSLT 的目录。
  • -y, –yacc :它模拟 POSIX Yacc。
  • -W, –warnings[=CATEGORY] :报告属于 CATEGORY 的警告。
  • -f, –feature[=FEATURE] :它激活杂项功能。

解析器:

  • -L, –language=LANGUAGE :它指定输出编程语言。
  • -S, –skeleton=FILE :指定要使用的骨架。
  • -t, –debug :它检测解析器以进行与“-Dparse.trace”相同的跟踪。
  • –locations :它启用位置支持。
  • -D, –define=NAME[=VALUE] :类似于 '%define NAME “VALUE”'。
  • -F, –force-define=NAME[=VALUE] :它覆盖 '%define NAME “VALUE”'。
  • -p, –name-prefix=PREFIX :它将 PREFIX 附加到由“-Dapi.prefix=PREFIX”弃用的外部符号。
  • -l, –no-lines :它不生成“#line”指令。
  • -k, –token-table :它包括一个令牌名称表。

输出:

  • –defines[=FILE] :它还产生一个头文件。
  • -d :类似,但不能指定 FILE(对于 POSIX Yacc)。
  • -r, –report=THINGS :它还生成有关自动机的详细信息。
  • –report-file=FILE :将报告写入文件。
  • -v, –verbose :与“–report=state”相同。
  • -b, –file-prefix=PREFIX :它为输出文件指定一个前缀。
  • -o, –output=FILE :它将输出留给 FILE。
  • -g, –graph[=FILE] :它还输出自动机的图形。
  • -x, –xml[=FILE] :它还输出自动机的 XML 报告(XML 模式是实验性的)。

例子:

  • 野牛:例如,名为 file.y的野牛语法文件。默认情况下,bison 将创建与输入文件同名的输出文件,并在名称后附加 .tab。
    bison file.y 

  • -y:它模拟 POSIX Yacc,即它使用典型的 yacc 约定 ( y.tab.c ) 创建输出文件名,而不是 bison 的 y.tab.cpp。
    bison -y file1.ypp

  • –defines:用于生成头文件以及.c(或 .cpp)文件
    bison --defines file.y

  • -p:用于为外部符号添加自己的自定义前缀。
    bison -p FILE file.y

  • -r:用于生成报告文件。默认报告文件名为file.output
    bison -r all file.y

  • -V:显示野牛版本信息。
    bison -V

  • –print-localedir:它显示包含区域设置相关数据的目录。
    bison --print-localedir

  • --print-datadir:显示包含骨架和XSLT的目录。
    bison --print-datadir

  • -x:它显示自动机的 XML 报告(XML 模式是实验性的)。
    bison -x file.y

  • -g:显示自动化图表。
    bison -g file.y

笔记:

  • 要查看 bison 命令的手册页,请使用以下命令:
    man bison
  • 要查看 bison 命令的帮助页面,请使用以下命令:
    bison --help