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