问题标签 [merlin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
parsing - Menhir的部分解析和恢复
Sedlex 和 Menhir 中有一个非常小的计算器。现在,我想让计算器能够解析像1+
. 所以我修改parser.mly
为
但评估1+
仍然返回错误Fatal error: exception Parser.MenhirBasics.Error
。
有人可以帮忙吗?
macos - 无法在 macOS Mac M1 上安装 OCaml
我在 6 个月前安装了 merlin,以便能够编译 Ocaml,我没有遇到任何问题。我最近升级以更新所有内容,但无法使软件包正常工作。
当我尝试重新安装它时,我收到此错误消息(opam install -y merlin):
如果您有解决此问题的想法,我很感兴趣
非常感谢你, 西奥 Souchon
emacs - Emacs (GUI) 上的 Merlin 无法获取 dune 提供的 merlin 配置
首先,请知道我是 Ocaml 的 Dune 和项目管理的初学者。尽管如此,我已经安装了沙丘并创建了一个新的沙丘项目,它处理 camlimages 库、图形等。当我照常进行时,项目编译和执行效果很好:
- opam exec 沙丘构建
- opam exec 沙丘 exec ./myexecutable.exe
但是,我不能在 emacs 中使用 Tuareg 模式,因为后者似乎无法很好地找到/理解 dune-project 配置文件代表沙丘 v2.8 之前的前者“.merlin”(根据文档:https: //dune.readthedocs.io/en/latest/usage.html?highlight=merlin )。当我尝试将当前的 .ml 启动到 Tuareg repl 时,这意味着很多“未绑定模块”错误。
我试图手动添加包
- Merlin > 选择套餐
但是 Merlin 似乎并不关心这个,即使它出现在 merlin 配置文件中。
一些假设:
每次我想从 dune 访问外部“安装 opam”的库/包时,我需要从 Opam 启动 Dune 以便访问它们,而不是在 shell 中启动一个简单的“Dune”命令。我觉得“shell环境”无法访问“Opam环境”。这对我的问题有影响吗?
您可以在下面找到一些相关信息,这可能有助于理解我的问题:
- Merlin > 检查配置而不手动添加包
加载的 .merlin 文件:/home/erwan/Bureau/Nextcloud/GIT/Projet_integrateur_L3OPTIM/dev/importimg/dune-project 自定义缓冲区设置:-packages: none -flags: "" -extensions: none 自定义 merlin 设置:((env " PATH=/home/erwan/.opam/default/bin”)(命令。“/home/erwan/.opam/default/bin/ocamlmerlin”))
- 沙丘文件
(可执行文件(名称 importimg)(库 camlimages.core camlimages.png 图形 camlimages.graphics))
- 我的项目的树结构(由沙丘生成)
- .emacs 内容
- 版本
梅林:3.7.0
沙丘:2.1.3
Emacs:2020-03-26 的 GNU Emacs 26.3(build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.14),由 Debian 修改
欧帕姆:2.0.5
奥卡姆:4.08.1
提前致谢
ocaml - 生成启用增量 API 和检查 API 的解析器
我有一个由 menhir 和传统 makefile 构建的大项目。首先,我想在我的项目中添加一个像这个项目这样的错误处理机制。
通过跟踪示例项目的沙丘,我设法通过以下命令生成.mly
、.mli
、.ml
和of :.cmi
.cmo
unitActionsParser_e.mly
增量 API 和错误处理确实有效。
然后,我想将像这个项目这样的错误恢复添加到我的项目中。然后,在我的项目中items state
引发了错误。Error: Unbound value items
根据手册和沙丘,我想我需要在--inspection
某处添加。
我试过了menhir --explain --inspection --table --dump --infer --external-tokens Parser_e unitActionsParser_e.mly
,然后camlfind ocamlc -package menhirLib -c unitActionsParser_e.mli
报错Unbound type constructor Parser_e.terminal
。
我也尝试直接处理parser_e.mly
而不是使用unitActionsParser_e
by menhir --explain --inspection --table --dump --infer parser_e.mly
,但它返回了一个错误Unbound module Utility
where Utility
is a module in another folder required by parser_e.mly
。在我手动复制utility.cm*
到 的文件夹后parser_e.mly
,它返回了一个错误Unbound module Sedlexing
(这里是一个我们可以重现错误的 fork)(这可能与手册的与构建系统的交互有关)。
有谁知道生成解析器(UnitActionsParser_e
或Parser_e
)的正确命令和标志是什么,以启用 Menhir 的增量 API 和检查 API?
(* 在讨论.ocaml.org 中的链接:https ://discuss.ocaml.org/t/generate-a-parser-enabling-incremental-api-and-inspection-api/9380 *)