我创建了一个语法扩展,允许将类型定义为
type.yjson type_name {
/* type_declaration */
}
能够直接从 json 文件构建记录值。语法扩展插入一个模块和必要的功能。到这里为止,没问题。语法扩展正是我想要的。
如果我想在我的代码中的其他地方使用“yjson”(即:函数参数),我开始遇到一些问题。
这是我尝试过的:
EXTEND Gram
str_item:
[
[ KEYWORD "type"; KEYWORD "."; "yjson"; tdl_raw = type_declaration ->
这是我使用“yjson”作为函数参数时得到的错误
[fun_binding] expected after [ipatt] (in [let_binding])
我真的不明白这里发生了什么。似乎规则不匹配,那么为什么会出现解析错误?