2015-11-16 40 views
1

连接器I具有以下特征:具体语法 - 对关系领域

abstract sig Node{ 
arc: set Node} 

是否有可能在一种指定圆弧关系作为具体语法关系的连接器?

sig P extends Node{token:Int}{tokens>=0} 

它也可以帮助我上面的情况,令牌字段。

最佳,

回答

2

在F-合金,则可以通过从一对签名(打字的关系)与目标签名定义映射映射关系的签名。这意味着这对签名中的原子的任意组合将被映射到由目标签名键入的新原子。

为了强制创建原子的组合是您想要表示的关系的组合,您需要在guard谓词中编写一个特定的约束条件。

对于你的榜样,你会因此具有映射:

mapArc: Node -> Node -> CONNECTOR 

和后保护:

pred guard_mapArc(n1:Node,n2:Node){ 
    // the image of n1 via the arc relation is n2 
} 

另外不要忘记,值谓词应该保持组合的参考的原子。

pred value_mapArc(n1:Node,n2:Node,c:CONNECTOR){ 
    // state properties of c in function of the given n1 and n2 
} 

希望它可以帮助