当我用 menhir 生成解析器时,有没有办法导出更多东西?

2024-01-05

我正在使用 menhir 生成解析器,现在,它从我的 parser.mly 文件生成的 parser.mli 文件如下所示:

(* The type of tokens. *)

type token = 
  (* ... huge ADT definition goes here ... *)

(* This exception is raised by the monolithic API functions. *)

exception Error

(* The monolithic API. *)

val start: (Lexing.lexbuf -> token) -> Lexing.lexbuf -> Types.ast

有没有办法在我的解析器界面中包含更多内容?特别是,我希望能够导出 AST 的数据类型(当前位于单独的 Types 模块中)以及一些使用令牌数据类型的函数(例如,将它们转换回字符串的函数)。

我尝试在之后放置一些 Ocaml 代码%%在 parser.mly 中,但是虽然该代码显示在 parser.ml 中,但我声明的函数都没有出现在 parser.mli 中。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当我用 menhir 生成解析器时,有没有办法导出更多东西? 的相关文章

  • 什么时候应该在 OCaml 中使用对象?

    通常 OCaml 程序可以使用或不使用对象来编写 什么时候使用物品最有利 什么时候应该避免使用物品 作为一般经验法则 不要使用对象 它们带来的额外复杂性通常并不值得 我认为这也是适用于其他语言的规则 但那是另一回事了 至少对于 OCaml
  • 与 Python 的 range 函数等效的 OCaml 习惯用法是什么?

    我想创建一个从 1 到 的整数列表n 我可以在 Python 中使用range 1 n 1 并在 Haskell 中使用 take n iterate 1 1 正确的 OCaml 习惯用法是什么 我不知道有什么习惯用法 但这里有一个使用中缀
  • OCaml 中的“Eval”字符串

    我正在尝试 评估 表示 OCaml 中的 OCaml 表达式的字符串 我想做一些与 Python 类似的事情eval https docs python org 3 library functions html eval 到目前为止我还没有
  • 如何将模块与 js_of_ocaml 一起使用?

    我目前正在开发一个用 OCaml 编写并使用 js of ocaml 编译为 javascript 的网站项目 只要我使用该命令只有一个源文件 它就可以很好地工作ocamlfind ocamlc package js of ocaml pa
  • F# 中的命令式多态性

    OCaml 的 Hindley Milner 类型系统不允许命令式多态性 类似于 System F 除非通过最近对记录类型的扩展 这同样适用于 F 然而 有时需要将用命令式多态性 例如 Coq 编写的程序翻译成此类语言 Coq 的 OCam
  • 在使用 Base 的 OCaml 中,如何构造一个包含“int * int”类型元素的集合?

    在 F 中 我只需执行以下操作 gt let x Set empty val x Set lt a gt when a comparison gt Set add 2 3 x val it Set
  • OCaml 中的多态性 - 特别、参数、包含/子类型

    我在理解不同类型的多态性时遇到问题 特别是关于 OCaml 的多态性 我知道多态性允许 OCaml 中表示为 a 的多种类型 但我不明白不同类型的多态性是什么 如果有人能用相对低级的语言给我解释那就太棒了 临时 参数 包含 子类型 这是一个
  • OCaml 对应于 Python 的“with”语句(自动释放资源)是什么?

    OCaml 中与 Python 的 with 语句相对应的是什么 with open test txt r as f Do stuff with f At this point f will always be closed even in
  • 使用 Opam 管理项目依赖关系

    我是 OCaml 的新手 我使用过的其他语言 例如 Scala Clojure Node js 上的 Javascript 都有包管理器 允许人们以干净的状态启动项目 该项目具有一组已声明的已知版本的依赖项 我正在尝试与 Opam 做类似的
  • 是否可以在 OCaml 解释器中使用箭头键?

    每次我在解释器中使用这些键时 我都会不断出现如下符号 D C 我在 ZSH 中使用 Linux Mint 12 但是在 Ubuntu 中使用 bash 得到了相同的结果 另外 ssh 中也是同样的情况 库存 OCaml 顶层没有内置行编辑功
  • GODI-电池:安装问题

    我正在尝试使用 GODI 控制台安装 godi batteries 我似乎已经对所有依赖项进行了排序 例如甘菊 我在 Godi 的界面中收到以下错误 gt ocamlfind ocamlopt shared linkall package
  • 具有可变参数数量的 OCaml 函数

    我正在探索 OCaml 函数的 高级 用法 我想知道如何编写具有可变数量参数的函数 例如 像这样的函数 let sum x1 x2 x3 xn x1 x2 x3 xn 通过一些类型黑客 当然 let sum f f 0 let arg x
  • OCaml:用消息断言

    又是另一个问题 P 我不太确定是否应该将其发布在这里或 OCaml 邮件列表上 但我首先尝试这样做 我喜欢断言语句 然而 我发现如果没有附加消息 错误消息几乎毫无用处 第 XXX 行的断言冲突 很好 但实际上出了什么问题 我认为断言的一个很
  • 使用不带标签的 Core.Std.List.fold_left

    我正在尝试 Core 的List fold left List fold left a Core Std List t gt init b gt f b gt a gt b gt b
  • OCaml:为什么重命名类型会失败并显示“它们的种类不同”

    我正在为成对的类型见证和见证类型的值构建一个通用容器 我想将其用于几种不同的类型 这会给我带来错误 因为这些类型的名称都相同 所以我尝试重命名函子结果中的类型 如下所示 module type Witness sig type a key
  • OCaml 3.12 中的一流模块:它们将使哪些事情变得更容易(或可能)?

    我听说 OCaml 3 12 中即将推出 一流模块 他们将提供什么优势 哪些孩子的事情会变得更容易 他们试图解决什么问题 一个简单的例子就足够了 这只是一个可能的应用程序 但一流的模块可以轻松地对存在类型进行编码 基本上是一个模块打包存在类
  • OCaml 作为 C 库,hello world 示例

    我希望通过 C 调用 OCaml 代码 方法是将 OCaml 编译为包含 C 接口的静态或共享库 这一页 https caml inria fr pub docs manual ocaml intfc html似乎解释了如何为 OCaml
  • 为什么在 OCaml 中更喜欢柯里化而不是元组参数?

    Caml简介 http www cs jhu edu scott pl lectures caml intro html says 请注意 在 Caml 中 最好对多参数函数使用柯里化函数定义 而不是元组 比较时 a gt b gt c调用
  • 为什么计算斐波那契数需要很长时间?

    几天前我开始学习Ocaml 我尝试编写一个斐波那契数字程序 let rec fib a if a 1 a 2 then 1 else fib a 1 fib a 2 该代码不是最佳的 因为我不知道如何处理异常情况 但现在 如果我尝试计算 f
  • OCaml 前向声明

    有没有办法在 OCaml 中进行 C 风格的前向声明 我的问题是我有两个相互引用的变体 type path formula Next of state formula Until of state formula state formula

随机推荐

  • Web Api GET 方法可能具有可为 null 的 Guid 吗?

    我有一个 MVC Web API get 方法 我希望能够将可为空的 Guid 作为参数传递 如果我使用 Id null 设置 GET 我会收到 400 响应 我可以传递一个空的指南 但我宁愿不这样做 无论我将 URI 更改为 id id
  • 测试应用内购买是否需要有效的付费应用程序合同?

    我正在关注一个应用内购买教程 http www raywenderlich com 21081 introduction to in app purchases in ios 6 tutorial它还展示了如何使用沙箱环境 http dev
  • 无法找到或加载程序集“tmpAssembly,

    我正在尝试使用动态生成的类型作为名为 codeeffects www codeeffects com 的业务规则编辑器的源 但是我收到此异常 Could not find or load assembly tmpAssembly Versi
  • IIS 管理器错误数据。 0x80090005

    当我尝试在 高级设置 中设置物理路径凭据时 收到如下错误消息 Internet 信息服务 IIS 管理器 坏数据 HRESULT 异常 0x80090005 它阻止我设置特定用户来访问网络共享文件夹 奇怪的是 我有另一台具有相同配置的服务器
  • APE 和 Node.js 之间的主要区别是什么?

    有谁用过的可以分享一下经验吗 主要区别是什么 您更喜欢哪一个 谢谢 socket io 与 APE 的不同之处 socket io 是用 javascript node js 编码的 而 APE 是用 C 编码的 我相信当你想做出贡献时 这
  • 根据属性将 JavaScript 中的对象数组拆分为单独的数组

    我有一个像这样的数组 var flightPlanCoordinates lat 37 772 lng 122 214 status walking lat 36 772 lng 123 214 status walking lat 21
  • 禁用“您所做的更改可能无法保存”弹出窗口

    我使用以下前端代码导出 csv文档 HTML
  • 在 Vim 中同时保存并运行

    我做了很多 Python 快速模拟工作 并且不断保存 w 然后运行 有没有办法将这些动作结合起来 也许是 保存并运行 命令 好的 您正在寻找的最简单形式是管道命令 它允许您在同一行上运行多个 cmdline 命令 在您的情况下 这两个命令是
  • PowerShell:从文本文件读取行,构造源文件名和目标文件名,然后复制文件

    I m a 电源外壳 http en wikipedia org wiki Windows PowerShell新手 我很想能够编写这个脚本 我有一个文本文件 其中每一行都是文件名的一部分 没有路径或扩展名 我想要一个单行循环遍历文件的每一
  • 将字符串添加到 ArrayList [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我需要确保我正在正确构建这个程序 我
  • Python 抽象类 - 如何阻止实例化?

    我有 C 背景 该语言具有一些内置的 保护开发人员 功能 我知道 Python 采用 我们都是成年人 的方法 并让开发人员有责任深思熟虑 仔细编码 也就是说 Python 建议采用约定 例如私有实例变量的前导下划线 我的问题是 除了在文档字
  • Oracle 二进制数据类型

    有没有一种类型或方法如何在oracle中以二进制级别存储数据 我对 dml at table 和 pl sql 的操作都感兴趣 目前所有二进制元素都存储为 varchar2 1000 11111 0000 1111 但操作和数据存储大小相当
  • 创建 MySQL 存储过程来更新记录

    我正在转换所有现有的 MSSQL 数据库 并且存储过程被困在一个新的存储过程中 我需要在其中更新现有记录 一旦记录插入数据库并成功发送电子邮件 或至少传递到 SMTP 服务器 就会从 Web 表单调用该过程 我在 MSSQL 中有一个工作程
  • 如何编译c程序使其不依赖任何库?

    看来即使是一个 hello world 程序也依赖于几个库 libc so 6 gt lib64 libc so 6 0x00000034f4000000 lib64 ld linux x86 64 so 2 0x00000034f3c00
  • 我可以在 PHP 中使用字符串连接来定义类 CONST 吗?

    我知道您可以使用字符串连接来创建彼此的全局常量 define FOO foo define BAR FOO bar echo BAR 将打印 foobar 但是 我在尝试使用类常量执行相同操作时遇到错误 class foobar const
  • Selenium FindElement 会阻塞,直到文件上传完成

    短篇 当我使用 SendKeys path 触发文件上传到代理元素 由 ExecuteScript 放置 然后通过 jquery fileupload 插件代理到我的隐藏元素时 文件上传正常 但是当我尝试发出FindElement 它会阻塞
  • 如何为基于http的集成测试生成覆盖率报告?

    我正在为一个项目编写集成测试 在该项目中我进行 HTTP 调用并测试它们是否成功 由于我没有导入任何模块 也没有直接调用函数 coverage py 报告的覆盖率是 0 我想知道如何为此类集成 HTTP 请求测试生成覆盖率报告 食谱大致是这
  • 在python中使用scrapy执行Javascript函数

    我对 scrapy 我正在废弃一个网站 因为我有一些锚标记 其中包含 href 属性和javascript 提交表单函数 当我单击该 javascript 函数时 将打开一个页面 我需要从中获取数据 我使用了Xpath并找到特定锚标记的 h
  • 简单的子域重定向 PHP

    我的移动应用程序有一个子域 就像http m traffic domain com http m traffic domain com现在我希望我的用户可以通过访问访问他们的页面http m traffic domain com 用户名 h
  • 当我用 menhir 生成解析器时,有没有办法导出更多东西?

    我正在使用 menhir 生成解析器 现在 它从我的 parser mly 文件生成的 parser mli 文件如下所示 The type of tokens type token huge ADT definition goes her