gpt4 book ai didi

parsing - 将 menhir 与 sedlex 结合使用

转载 作者:行者123 更新时间:2023-12-02 11:05:59 26 4
gpt4 key购买 nike

出于某种原因(utf-8),我需要将 menhir 与 sedlex 一起使用,但不知道如何使生成的解析器依赖于 Sedlexing 而不是 Lexing 。有什么建议吗?

当我运行时

menhir --infer parser.mly

生成的程序包含带有Lexing...的行。我可以手动更改它,但必须有其他方法,不是吗?

最佳答案

编辑:生成的 parser.ml 应该引用 Lexin。 Sedlexing 用于创建发送到解析器的 lexbuf,但解析器并不关心该 lexbuf 是由 Lexing 还是 Sedlexing 创建的,只要它可以使用诸如 之类的函数即可Lexing.lex_start_pLexing.lex_curr_p

<小时/>

我用过类似的东西

ocamlbuild -use-menhir -tag thread -use-ocamlfind -quiet -pkg menhirLib \
-pkg sedlex test.native

其中 test.ml 通过调用 Parser 使用 parser.mly。

<小时/>

为了完整起见,ocamlbuild 运行的命令是:

menhir --ocamlc 'ocamlfind ocamlc -thread -package sedlex -package menhirLib' \
--explain --infer parser.mly

查看完整示例 https://github.com/unhammer/ocaml_cg_streamparse(分支 https://github.com/unhammer/ocaml_cg_streamparse/tree/match-singlechar-example 显示匹配单个代码点的规则,例如 aß,但不匹配 aa)。

关于parsing - 将 menhir 与 sedlex 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30853159/

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