gpt4 book ai didi

c++ - flex 和 bison 可以接受来自其他来源的输入吗?

转载 作者:太空狗 更新时间:2023-10-29 19:49:29 25 4
gpt4 key购买 nike

我打算用 Qt 编写一个文本编辑器,它可以为一种编程语言(玩具语言,用于学习目的)提供突出显示/代码完成/语法分析。

一开始,我想到了手写C++,因为我比较熟悉,所以对我来说会更舒服。但是,经过搜索,我发现 flex/bison 可以简化解析器的创建。在尝试了几个简单的示例后,工作示例似乎接受了终端中标准输入的输入。所以,我只想知道,flex/bison是否可以接受来自GUI框架中的文本编辑器widget的输入(比如Qt,我在做完parser engine的几个特性之后,会同时学习),然后再将结果输出回文本编辑器?

最佳答案

如果您不想使用 FILE * 指针,您还可以通过创建 FLEX 输入缓冲区从内存缓冲区(例如字符数组和以 nul 结尾的 C 类型字符串)进行扫描 - yy_scan_string() 从 null 创建缓冲区终止字符串,yy_scan_bytes 从固定长度的字符数组创建缓冲区。参见 Multiple Input Buffers在 flex 文档中获取更多信息。

如果这不能满足您的需求,您还可以重新定义 YY_INPUT 宏以实现完全控制 - 参见 Generated Scanner .

关于c++ - flex 和 bison 可以接受来自其他来源的输入吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8794239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com