menhir

    1热度

    2回答

    我使用Menhir创建一个解析器,并且存在一种总是跳到我的行为,我不理解它。我创建了以下最小的示例来演示它;这是接收机的说法在Go语言的方法声明的声明(http://golang.org/ref/spec#Method_declarations): %{ %} %token <string> T_identifier %token T_star %start <unit> demo

    3热度

    2回答

    我想定义一个keyword_table,它将某些字符串映射到某些令牌,并且我想让此表对于parser.mly和lexer.mll都可见。 看来,该表具有parser.mly来定义, %{ open Utility (* where hash_table is defined to make a table from a list *) let keyword_table = h

    -1热度

    1回答

    我想解析一组表达式,例如:X[3],X[-3],XY[-2],X[4]Y[2]等 以我parser.mly,index(这是内[])被定义为如下: index: | INTEGER { $1 } | MINUS INTEGER { 0 - $2 } 令牌INTEGER,MINUS等在词法分析器定义为正常。 我试着解析一个例子,它失败了。但是,如果我评论| MINUS INTEGER { 0

    0热度

    2回答

    的,我想分析一组表达式:R[3]C,R[2]C,R[3]C-R[2]C ...有冲突,我不能解决... ... 这里是lexer.mll部分: rule token = parse | 'R' { R } | 'C' { C } | "RC" { RC } | ['0'-'9']+ as lxm { INTEGER (int_of_string

    2热度

    1回答

    我想从描述此树(实际上是分类法)的文件解析树。 我正在寻找提供树木描述的语法示例(最好是lex/yacc文件)。如果描述的树不是二叉搜索树,而是每个节点(可能)有几个孩子(它被称为家族树?平面树?)的树,会更好。 理想情况下,如果这个lex/yacc实际上包含在OCaml库中,那将是完美的。但任何用于描述树的良好语法都会令我满意。 我试图通过Google或Stackoverflow查找示例,但研究

    5热度

    1回答

    我试图解析语言,其中的运营商有一个动态属性(优先级和优先级)用巨石解析器(类似于Ocamlyacc)。在词法阶段,所有的运营商填充OP:string令牌(从而“+”变成(OP "+")等)。 运算符属性是在解析时确定的,并填充一个关联运算符及其属性的表。鉴于此表,我如何指示Menhir根据此表的数据动态更改解析运算符的规则的优先级? 感谢, CharlieP。

    7热度

    3回答

    我目前工作的一个网站项目写在OCaml中,并使用js_of_ocaml编译为JavaScript。它工作得很好,只要我使用命令ocamlfind ocamlc -package js_of_ocaml -package js_of_ocaml.syntax -syntax camlp4o -linkpkg -o file.byte file.ml只有一个源文件,但我想在我的项目中包含几个模块。我怎

    1热度

    1回答

    我想解析一些Verilog的碎片 - 我主要感兴趣的是提取模块定义和实例。 用Verilog模块的定义如下: module foo (...) endmodule; 和模块中的两个不同的可能方式之一实例: foo fooinst (...); foo #(...list of params...) fooinst (....); 在这一点上我只是在寻找有兴趣定义或实例化模块的名称; 'f

    1热度

    1回答

    我已经编写了一个词法分析器和分析器来分析线性代数语句。每个语句由一个或多个表达式组成,后跟一个或多个声明。我使用menhir和OCaml来编写词法和解析器。 例如: Ax = b,其中A是可逆的。 这应被理解为A * X = B,(A,可逆) 表达式中的所有的ID必须是一个大写或小写的符号。我想重载乘法运算符,以便用户不必输入'*'符号。但是,由于词法分析器也需要能够读取字符串(例如在本例中为“可

    4热度

    2回答

    我有一个带有OCaml .ml文件和Menhir .mly文件的项目。我使用ocamlbuild来编译这个项目。 我_tags文件包含此单行: true: use_menhir, package(batteries) 一切运作良好,除了当我想在.mly文件中使用的电池。如果我在我的.mly文件中的%{和%}之间的open Batteries ;;,调用ocamlbuild时会出现“Error: