f# - 有没有办法使用 fslex/Lexing.LexBuffer 执行前瞻

标签 f# lexer

我正在使用 fslex 并且在我的标记器规则之一中,我需要查找下一个字符,以便我可以决定是继续使用 token 还是停止、放松并让前一个规则使用它。

我花了一些时间检查它的源代码,看起来唯一的方法是编译一个公开一些内部方法的版本。也许这里有人有更好的解决方案?

最佳答案

也许在看 source code LexBuffer 可以提供帮助。尽管有一些属性(BufferScanStartBufferScanLength)来设置词法分析器在输入流中的位置,但它们是内部的。我不确定以安全的方式公开这些内容需要什么。

HubFS上还有一个问题处理放回。结论似乎是一样的:fslex 目前不支持。

关于f# - 有没有办法使用 fslex/Lexing.LexBuffer 执行前瞻,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6058023/

相关文章:

types - 在 F# 中,如何将类型名称作为函数参数传递?

可区分联合的 F# 限制

f# - 通过函数调用进行模式匹配

f# - 为什么在这种情况下模式匹配会因异常而失败?

F# 组合两个序列

parsing - 仅在 ANTLR 语法的一部分显式处理换行符

python - Funcparserlib.lexer.Spec 导入错误 : cannot import name 'Spec'

java - EBNF 到 JavaCC 词法分析器

python - wxPython StyleSetSpec 和 SetLexer 不工作?

parsing - 为编程语言编写代码格式化工具