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