ocamllex

    1热度

    1回答

    目前,我想要写在OCaml中的interpretter,这是我lexer.mll: { open Parser exception Eof } rule main = parse [ ' ' '\t' ] { main lexbuf } | [ '\n' ] { EOL } | ['0'-'9']+ as lxm { LINE_NUMB

    0热度

    2回答

    我在写一个解释器,使用ocamlyacc和ocamllex编译我的解析器和词法分析器。 我的问题是,我有一个文件卡列斯测试,包含在词法分析器中定义的两个命令: print a print b 但解释只是执行行只print a!我知道问题主要在解析器中,需要递归。我将它固定为这样(下面的代码),但它仍然不起作用。 %{ open Path %} %token <int> INT

    0热度

    1回答

    我想安排ocamllex和ocamlyacc代码来扫描和解析一个简单的语言。我已经定义了相同的抽象语法,但我发现难以扫描复杂的规则。这是我的代码 { type exp = B of bool | Const of float | Iszero of exp | Diff of exp*exp | If of exp * exp * exp } rule s

    1热度

    1回答

    我已经定义了一个散列表keyword_table来存储我的语言的所有关键字。这里是代码的一部分: (* parser.mly *) %token CALL CASE CLOSE CONST ... reserved_identifier: | CALL { "Call" } | CASE { "Case" } | CLOSE { "Close" } | CONST { "Const"

    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查找示例,但研究

    1热度

    1回答

    我正在为Ocaml中的类做一个编译器。我需要用命令或表达式来读取文件,比如“1”,然后它返回Int 1。除了我和我的朋友之外,相同的代码与整个班级一起工作。每个人都使用相同的ocaml版本和Ubuntu 13.04。错误是:Lexico.Eof 有人对这可能是什么有什么想法? 这是asa.ml: type opB = | Soma | Sub | Mul | Div type exp

    0热度

    1回答

    我有一个警告编译我的词法分析器与OCaml的降低: File "lexer.mll", line 42, characters 26-57: Warning 10: this expression should have type unit. 而且我想解析字符串,我做它启动时读取词法分析器报价结束时,一个特殊的规则我读了另一个报价,并在这种情况下返回字符串,并调用每个其他字符的规则标记。 这