首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有使用字符串而不是文件作为输入的flex + bison的工作示例?

有没有使用字符串而不是文件作为输入的flex + bison的工作示例?
EN

Stack Overflow用户
提问于 2011-05-01 09:03:53
回答 2查看 3K关注 0票数 0

有没有使用flex + bison (bison是必需的)的例子,输入是字符串,而不是文件?

我试过使用YY_BUFFER_STATE ..。函数而不是yyin,并得到错误"flex scanner push-back overflow“。Flex将InputString1更改为0。关于SO的其他几个答案帮助不大--实际的代码会更有用。

EN

回答 2

Stack Overflow用户

发布于 2011-05-01 15:58:54

in the Flex manual描述了扫描内存区的方法。

Flex修改了yy_scan_buffer提供的缓冲区。如果您需要避免被修改,yy_scan_bytesyy_scan_string将是合适的。

扫描文件或内存区域是否独立于解析器(bison)。

如果您的lexer失败了,我建议您检查它是否也失败了,即使是在读取文件时也是如此。

作为参考,下面的flex代码在我的环境中打印abcd

代码语言:javascript
复制
%%

[a-z]+  puts( yytext );
.
\n

%%

int yywrap( void ) { return 1; }

int main() {
  yy_scan_string("ab cd");
  yylex();
  yy_delete_buffer( YY_CURRENT_BUFFER );
}
票数 1
EN

Stack Overflow用户

发布于 2015-02-19 16:38:51

您也可以使用yy_scan_buffer(char*,size_t)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5845652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档