1

我是 OCaml 的新手,我正在尝试使用解析器生成器 - ocamllex、ocamlyacc 为特定语言创建解析器。当我尝试编译我的parser.mly文件时,我收到以下错误:

错误(在 = 处带有标记):

File "parser.mly", line 94: unterminated action
| id = IDENTIFIER { identifier id }
;

以下是 parser.mly 文件的摘录:

%{
  open Ast

  let identifier name = {
    Identifier.name = name;
  }
%}

%token <int> INT
%token <string> IDENTIFIER

%start monitor
%type <Ast.Expression.t> monitor

%%

ident:
  | id = IDENTIFIER { identifier id }
;
4

1 回答 1

2

Ocamlyacc 不支持为这样的规则部分命名。您要么需要使用$1etc.,要么切换到支持此功能的 Menhir。

于 2018-02-09T21:13:24.740 回答