我是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 }
;
答案 0 :(得分:2)
Ocamlyacc不支持为此类规则的部分命名。您需要使用$1
等,或者切换到支持此功能的Menhir。