目标:将bison集成到Visual studio中
做法:以cygwin下bison为例。
1.新建一个批处理文件 bison.bat,内如如下:
@set bison_dir="E:/SDK/cygwin/bin"
@set Path=Path;%bison_dir%
@REM bison command line
@REM Usage
@REM bison.bat %grammer_file_name
@REM
@REM bison parameters used in our command line
@REM -l don't generate `#line' directives
@REM --report=all complete report information
@REM --report-file=FILE write report to FILE
@REM --graph[=FILE] output a graph of the automaton
@REM
@REM call bison
@echo ">>>>>> bison parse begin... >>>>>> "
bison.exe -l --report=all --report-file=%1.report %1
@echo "<<<<<< bison parse end >>>>>> "
bison.bat接收一个参数,为bison语法描述文件( *.y )
除了生成源代码文件外,同时会生成最完整报告,包括状态机描述文件,移进规约冲突信息。
2. 以VS2008为例, 选择 “工具”-> “外部工具”,新建外部工具如下:
标题:bison
命令: C:/cygwin/bin/bison.bat
参数:($(ItemPath)
初始目录:$(ItemFileName)
勾选”使用输出窗口“
3. 打开bison语法文件,选择 “工具”-> ”bison“ 进行调用。
正常情况下你将看到在VS2008 输出窗口中如下打印:
">>>>>> bison parse begin... >>>>>> "
e:/Work/lexertl/examples/example_work_with_bison>bison.exe -l --report=all --report-file="calc++-parser.yy".report "calc++-parser.yy"
"<<<<<< bison parse end >>>>>> "