在 ocamllex 中返回多个标记
有没有办法在 OCamlLex 中返回多个标记?
我正在尝试为基于缩进的语言编写一个词法分析器和解析器,并且我希望我的词法分析器在注意到缩进级别低于以前的水平时返回多个 DEDENT
标记。这将允许它在多个块结束时通知解析器。
通过遵循此方法,我将能够使用 INDENT
和 DEDENT
作为 BEGIN
和 END
的直接替代品>,因为这两个标记将由 INDENT
和 DEDENT
标记隐含。
Is there any way to return multiple tokens in OCamlLex?
I'm trying to write a lexer and parser for an indentation based language, and I would like my lexer to return multiple DEDENT
tokens when it notices that the indentation level is less than it previously was. This will allow it to notify the parser when multiple blocks have ended.
By following this method, I would be able to use INDENT
and DEDENT
as drop-in replacements for BEGIN
and END
, as these two tokens would be implied by the INDENT
and DEDENT
tokens.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
返回令牌列表。如果解析器无法本机处理该问题(例如 ocamlyacc) - 只需在两者之间插入缓存:
或者您可以在完整文档上运行词法分析器,然后在完整令牌流上运行解析器。
顺便说一句,您看到 ocaml+twt 了吗?
Return the list of tokens. If the parser cannot natively handle that (say ocamlyacc) - just insert a cache in between :
Or you can run the lexer on the full document and then run the parser on the full token stream.
BTW did you see ocaml+twt?