gpt4 book ai didi

ocaml - 在 ocamllex 中返回多个 token

转载 作者:行者123 更新时间:2023-12-04 14:52:12 24 4
gpt4 key购买 nike

有没有办法在 OCamlLex 中返回多个 token ?

我正在尝试为基于缩进的语言编写词法分析器和解析器,并且我希望我的词法分析器返回多个 DEDENT当它注意到缩进级别比以前少时标记。这将允许它在多个块结束时通知解析器。

按照这种方法,我将能够使用 INDENTDEDENT作为 BEGIN 的替代品和 END ,因为这两个标记将被 INDENT 隐含和 DEDENT token 。

最佳答案

返回 token 列表。如果解析器本身无法处理(比如 ocamlyacc) - 只需在两者之间插入一个缓存:

let cache =
let l = ref [] in
fun lexbuf ->
match !l with
| x::xs -> l := xs; x
| [] -> match Lexer.tokens lexbuf with
| [] -> failwith "oops"
| x::xs -> l := xs; x

或者您可以在完整文档上运行词法分析器,然后在完整 token 流上运行解析器。

顺便说一句,你看到了吗 ocaml+twt ?

关于ocaml - 在 ocamllex 中返回多个 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3437841/

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