问题标签 [flex-lexer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
15707 浏览

parsing - Lex / Flex 中的启动状态

我正在使用 Flex 和 Bison 作为解析器生成器,但是我的扫描仪中的启动状态存在问题。

我正在使用排他规则来处理评论,但这个语法似乎与引用的标记不匹配:

在这个简单的例子中,这一行:

不完全匹配作为评论,除非我包含此规则:

我如何绕过这个而不必将所有这些令牌添加到我的独家规则中?

0 投票
2 回答
1533 浏览

flex-lexer - Windows 版 flex 的更新版本何时可用?

我在一个项目中使用flex(词法分析器,而不是 Adob​​e Flex)。但是,我也希望能够在 Windows 平台上编译,但是Windows 版本的最新版本只有 2.5.4a,所以它不会为 2.5.35 版本编译我的文件。不,我无法降级到受支持的最高 Windows 版本。

任何人都知道升级 Windows 版本的计划,或者有关于在 Windows 上编译的建议吗?

0 投票
6 回答
13331 浏览

ide - Flex/Bison IDE?

我正在寻找一个良好的开发环境,可以在其中使用 flex 或 bison 或两者兼而有之。

是否有任何具有这些功能和/或适合此功能的 IDE?

(如果不是下一个最普遍的问题是是否有带有 IDE 的词法分析器/解析器生成器?)

谢谢~亚历克斯

0 投票
1 回答
338 浏览

bison - 将生成的文件添加到分发的最佳方法?

我有一个使用 autoconf / automake 的非常复杂的(C++)项目,其中包括一些“生成的”文件(foo.yy -> foo.cc)。实际构建是使用“控制脚本”(Gentoo .ebuild 对于那些熟悉该概念的人)在各种平台上完成的。

现在,其中一个目标平台不正确支持 foo.yy -> foo.cc 步骤,必须使用在 Linux 机器上生成的 foo.cc 文件。

现在我有两种方法可以解决这个问题:

1) 将 foo.cc 签入项目存储库,并以某种方式修补 configure.in(或其他)以包括对 foo.yy / foo.cc 的时间戳检查,如果在有问题的目标上运行时会生成一个可理解的错误消息,并且过时foo.cc;

2) 将 foo.cc 签入到控制脚本库中,并有脚本控制时间戳并给出错误消息。

我可以做 2) 没问题,但我认为这不是放置 foo.cc 的正确位置。

另一方面,我对 autoconf / automake 了解不多,也不知道如何在 configure.in (或任何地方)中实现时间戳检查 / 错误消息。

您有什么建议,这里有人知道如何解决解决方案 1)吗?

编辑:使用解决方案 3) 解决,调整有问题的目标框,直到它能够自己执行 foo.yy -> foo.cc 步骤。我的问题解决了。

但我会留下这个问题 - 如何使用 autoconf / automake 进行时间戳检查 / 可理解的错误消息?

0 投票
2 回答
1001 浏览

c - 当我编写词法分析器时,tokens.h 有什么用?

我正在用 C 编写一个词法分析器,我在某处读到了有关头文件的信息tokens.h。它在那里吗?如果是这样,它的用途是什么?

0 投票
2 回答
970 浏览

c++ - 在 vc6 中使用 bison 和 flex

当我在 vc6 中使用 bison 和 flex 时,出现以下错误

lex.yy.c(395):错误 C2146:语法错误:缺少 ';' 在标识符 'YY_PROTO' lex.yy.c(395) 之前:致命错误 C1004:发现意外的文件结尾

这是什么原因?请帮忙。

复制自评论:

0 投票
2 回答
3793 浏览

c - 如何初始化 Bison 的 %union 值?

在野牛我有一个工会

我想像这样使用它

在 Lex 中:

而不是

轻松防止内存泄漏

但是我需要一些方法来分配一个 std::string 到 sval 开始。

我怎样才能做到这一点?

0 投票
1 回答
1515 浏览

parsing - 在 Lex 而不是 Yacc 中处理错误条件?

假设我有一个 lex 正则表达式

如果用户输入

它会匹配

但是如果用户说类似的话

我希望它出错并说“无法识别字符 K,期待 S”

我现在正在做的只是像这样写

然后实质上重新对 Yacc 中的字符串进行词法分析,以便我可以有有意义的错误条件

我怎样才能解决这个问题?

我唯一能想到的是使用命名组?

0 投票
4 回答
10674 浏览

lex - lex.yy.c 中的“yy”代表什么?

lex.yy.c 中的“yy”代表什么?

0 投票
1 回答
543 浏览

c - 使用 yacc 或 Bison 和 Flex 创建 foreach 关键字

我开发了一种解释型编程语言。它强烈基于 C。问题是,我想添加一个foreach指令,但不知道如何添加。

我使用 Bison 和 Flex 作为解析器和词法分析器生成器。