我有语法:
syntax Process ::= KVar "(" KVar ")" "." Process [binder]
| "new" KVar "." Process [binder]
syntax Program ::= KVar "(" KVarVec ")" "=" Process [binder]
syntax KVarVec ::= KVar | KVar "," KVarVec
这两种语法具有三个不同绑定的产生式:
a(x).P, wherexis bound inP, 但是a是一个不受该术语约束的名称。new a.P像 lambda 一样绑定a。Pf(a,b,c) = P绑定in的向量a,b,c。向量中的每个都应该绑定在.KVarPKVarP
我如何知道binder在生产中绑定特定变量?有什么binder(2)可以告诉它第二个KVar应该被绑定的吗?如果它的几个KVars 由另一种语法定义怎么办?