cygWin:flex&bison安装使用

1. cpp文件生成
   1.1 工具准备
      从www.cygwin.org:http://cygwin.com/install.html下载cygwin.
      执行setup.exe并选择flex/bison两个工具包
   1.2 启动cygwin
      启动桌面上的cygwin terminator,进入到.l与.y文件所在的路径.
   1.2 生成xqlexer.cpp
      在cygwin中执行 flex -L -oXQLexer.cpp XQLexer.l
   1.3 生成xqPaser.cpp
      在cygwin中执行 bison -l -d -o XQParser.cpp XQParser.y
2. 添加用户命令
   以命令createdb为例,格式为createdb dbname;
   2.1 修改XQLexer.l
       打开XQLexer.l文件,
       在最后一个 行之后
       添加同样一行,修改为createdb { BEGIN COMMAND; return token::CREATEDB;}
       若参数中还有关键字,在行之后添加类似的行.
       保存文件,生成xqlexer.cpp,具体参见1.2
   2.2 修改XQPaser.y
       打开XQPaser.y, 
       在%token VERSION "version"类似行之后添加命令的标签, %token CREATEDB "createdb"
       在990行 SHOWVERSION sideoption下添加命令处理.命令参数为字符串的,用DName表示.参照我们的命令格式和现有的方式很容易理解
       | CREATEDB DName
       {
            XdbParserArg* arg = new XdbParserArg(); //创建返回对象
            $$ = arg; //返回值
            arg->cmd = createdb; //命令类型, 在utils/commandtype.h中定义
            arg->params.push_back($2); //加入参数值,参数值以1开始,因此为第2个
            delete $2; //DName为new出来的字符串,需要删除.
       }
       若命令中有些常量之类,请参考其他命令修改或添加.
       生成XQparser.cpp
3. 修改用户命令
   按照修改要求对xqlexer.l, xqparser.y

转载于:https://www.cnblogs.com/TawnieChen/p/3228464.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值