免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3630 | 回复: 9
打印 上一主题 下一主题

如何使用flex读取内存中的缓冲区而不是一个FILE*? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-05-13 11:48 |只看该作者 |倒序浏览
仔细读过了flex的docu,但是还不是很清楚,虽然从上面看到如果要读取buffer而不是FILE*的话,一般使用yy_scan_string(),yy_scan_bytes()还有就时yy_scan_buffer()等函数,但是不是很清楚到底如何使用,不知道哪位大大能给出一个sample,flex的代码,简单复杂都可以,非常感谢。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-05-13 12:02 |只看该作者

如何使用flex读取内存中的缓冲区而不是一个FILE*?

到论坛中查找一下,好像有人谈论过的,但是不是在该版。

论坛徽章:
0
3 [报告]
发表于 2003-05-13 13:19 |只看该作者

如何使用flex读取内存中的缓冲区而不是一个FILE*?

up一下,没找到相关内容,还是希望能有人出头指点一下。

论坛徽章:
0
4 [报告]
发表于 2003-05-13 13:19 |只看该作者

如何使用flex读取内存中的缓冲区而不是一个FILE*?

up一下,没找到相关内容,还是希望能有人出头指点一下。

论坛徽章:
0
5 [报告]
发表于 2003-05-13 13:22 |只看该作者

如何使用flex读取内存中的缓冲区而不是一个FILE*?

回去帮你看吧

我买了一本LEX 2。0书
只是一直没有好好看

论坛徽章:
0
6 [报告]
发表于 2003-05-13 13:27 |只看该作者

如何使用flex读取内存中的缓冲区而不是一个FILE*?

你说的是O'Reily的那本?那本我已经看过两遍了,也写了一点东西,只是他里面重新定义读取buffer的方式是通常lex的做法,而flex正好不同。不过还是很感谢,如果有什么消息的话,麻烦你发站内消息给我,谢谢

论坛徽章:
0
7 [报告]
发表于 2003-05-13 18:12 |只看该作者

如何使用flex读取内存中的缓冲区而不是一个FILE*?

OK

论坛徽章:
0
8 [报告]
发表于 2003-05-14 12:35 |只看该作者

如何使用flex读取内存中的缓冲区而不是一个FILE*?

缺省 lex 代码从标准输入读取其输入,但我们希望游戏能够分析内存中的字符串。使用 flex 很容易就能做到,只要重新定义 lex 源文件顶部的宏 YY_INPUT:

extern int eval_getinput(char *buf, int maxlen);
#undef YY_INPUT
#define YY_INPUT(buf, retval, maxlen)        (retval = eval_getinput(buf, maxlen))





我们将 eval_getinput() 的实际代码写入一个单独文件,使它变得非常灵活,这样它可以从文件指针或内存中的字符串中获取输入。为了使用实际代码,我们首先建立一个全局数据源变量,然后调用 yacc 函数 yyparse(),此函数会调用输入函数并对它进行分析。

论坛徽章:
0
9 [报告]
发表于 2003-05-14 15:54 |只看该作者

如何使用flex读取内存中的缓冲区而不是一个FILE*?

谢谢,我在IBM的develope的页面上曾经看到过这段话,但是这个问题我是解决了,又遇到其他的问题了,嘿嘿,在考虑如何保证重入安全,我不希望他只能够做到单线程的。正在考虑中。。。
还是非常感谢你的热情帮助~~~

论坛徽章:
0
10 [报告]
发表于 2003-05-14 18:15 |只看该作者

如何使用flex读取内存中的缓冲区而不是一个FILE*?

多线程安全我也在关注

当然看看LEX也没有仔细看

我想FLEX应该保证多线程安全了吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP