其他语言

本类阅读TOP10

·基于Solaris 开发环境的整体构思
·使用AutoMake轻松生成Makefile
·BCB数据库图像保存技术
·GNU中的Makefile
·射频芯片nRF401天线设计的分析
·iframe 的自适应高度
·BCB之Socket通信
·软件企业如何实施CMM
·入门系列--OpenGL最简单的入门
·WIN95中日志钩子(JournalRecord Hook)的使用

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
将lex,yacc(flex,bison)与MFC结合起来使用!

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

近来开始用lexbison来写一些东东,这两者结合起来使用是相当的方便。用lexbison做完核心的分析处理之后,想必大家都会把这些嵌入到自己的工程里面,和其他的功能结合起来。但是,往往此时会出现许多的错误。

       lex,bison
默认生成的都是C的源程序,而且二者都有自己的语法规则。 有时会与VC有些冲突,但是,只要修改部分定义之后这些问题都是可以解决的。

1yyerror()函数,此函数可以直接写在yacc文件的最后。但是在VC里面需要预先声明,也就是说必须把yyerror()的声明部分放在yacc文件的第一部分。
2isatty()函数,没有用MFC之前,根本就没有注意这个东东,lex,bison生成的console程序跑得很好,但是加了MFC之后这个函数突然跳出来,说是没有定义。结果只好把<io.h>yinclude进去了。具体什么原因,本人也不是很清楚。
3
,数据交换的问题。lex,yacc默认的输入是键盘。因此还要为lex创建一个新的buffer。这里可以建立新的文件作为buffer,也可以用字符串yy_switch_to_buffer(yy_scan_string(m_stredit.GetBuffer(m_stredit.GetLength())));结果的输出可以用一个全局的字符串。

这样基本上就可以在MFC中使用lex,bison给我们带来的方便了。

以上是本人的一点点体会,错误和不当之处在所难免,见笑了!




相关文章

相关软件