我有一个语法:
syntax Exp ::= Int | Bool
| Exp Exp
> Exp + Exp [left]
> "fun" KVar "->" Exp [binder]
| "(" Exp ")" [bracket]
syntax Val ::= Int | Bool | "fun" KVar "->" Exp [binder]
其中 lambda 项"fun" KVar "->" Exp
是值和表达式。什么是同时成为和"fun" KVar "->" Exp
的一部分的正确方法是什么?Exp
Val
我尝试创建一个新的排序syntax Lambda ::= "fun" KVar "->" Exp
并添加Lambda
到两者Val
和Exp
. 但是,这与Lambda
.