gpt4 book ai didi

flex-lexer - 词法分析器(即扫描器)中的起始条件是否会增加识别标记的能力?或者它只是一个方便的东西?

转载 作者:行者123 更新时间:2023-12-03 16:33:17 25 4
gpt4 key购买 nike

在某些时候,flex 添加了开始条件。我很想知道此功能是否扩展了 flex 匹配 token 的理论能力,或者它是否只是一种实用的解决方案,可以使规则集(模式和操作)更短且更易于阅读。

这里有些含糊不清,因为在我看来,可以通过巧妙地使用标志变量在 C 级别模拟开始条件;如果为 true,则不带开始条件的 flex 与带开始条件的 flex 的功率相等。假设我们不能以这种方式扩展我们的扫描器,扫描器所能做的就是通过模式匹配 token 并回显 token 的名称。在这种情况下,带有启动条件的 flex 扫描器是否可以比没有启动条件的扫描器标记更多的语言?或者我是否可以始终编写一组没有开始条件的规则,这些规则与具有开始条件的规则集做同样的事情?

这个问题很难说清楚,但我希望我说得足够准确和清楚了。

最佳答案

它们有效地允许您使用相同的代码运行多个 DFA。另一种看待它的方式是它增加了上下文敏感性。

例如,它是在 Cobol 中完成的,其中 PICTURE 字符串的词法规则与其他语言的词法规则完全不同,因此您有

PICTURE { BEGIN S_PICTURE; }
<S_PICTURE>blah { ... BEGIN INITIAL; }

关于flex-lexer - 词法分析器(即扫描器)中的起始条件是否会增加识别标记的能力?或者它只是一个方便的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27357630/

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