Ocaml 解析器 "unterminated action" 错误
Ocaml parser "unterminated action" error
我是 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 }
;
Ocamlyacc 不支持像这样给规则的各个部分命名。您要么需要使用
等,要么切换到支持此功能的 Menhir。
我是 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 }
;
Ocamlyacc 不支持像这样给规则的各个部分命名。您要么需要使用 等,要么切换到支持此功能的 Menhir。