小编Dav*_*ink的帖子

OCaml解析器和语法结构

我一直在为一种小语言开发一个解析器,其语法如下

P::= 1 | 0 | P+P | P and P | P wait(d) P 
Run Code Online (Sandbox Code Playgroud)

这是我用Ocaml camlp4编写的代码

action:
  [
     ["act"; a = LIDENT  -> Act(a)]
    |
     ["coact"; a = LIDENT  -> Act2(a)]  
  ];

  proc: 
  [ 
     [ "ZERO" -> Zero]
    | RIGHTA
     ["."; l = action; p = SELF -> Now(l,p)]
    | RIGHTA
     [":"; l = action;  p = SELF -> Delay(l,p)]
    | LEFTA
     [p1 = SELF; "+"; p2 = SELF -> Plus(p1,p2)]
    |RIGHTA
     [p1 = SELF; "WAIT"; "("; d = …
Run Code Online (Sandbox Code Playgroud)

parsing ocaml camlp4

7
推荐指数
0
解决办法
361
查看次数

标签 统计

camlp4 ×1

ocaml ×1

parsing ×1