如何在规则中执行脚本并将值传递回booggie 2中的规则?

时间:2012-11-12 17:13:09

标签: booggie

在booggie 2中,如何从规则中执行脚本(用Python编程)并将脚本的返回值传递给规则?

请注意:booggie项目不再存在,但导致了Soley Studio的开发,​​它涵盖了相同的功能。

1 个答案:

答案 0 :(得分:1)

exec是从规则中执行规则和脚本的命令。接下来是括号,其中包含由规则和脚本组成的序列。

执行规则中的应用程序序列的顺序很严格(参见Is there a fixed order of how the right-hand side of a rule is executed in GrGen.NET?)。 exec始终是最后执行的语句(当然在return之前)。因此,我们无法将变量从exec传递到eval。因此,exec中脚本执行所产生的变量必须分配给exec语句中的节点/边缘属性。为此,我们使用大括号并编写与eval语句中相同的代码。

在下面的示例中,调用一个脚本,该脚本返回三个给定值( a.value,b.value,c.value )的最高值,并将其存储为节点的属性( d.value )。

    exec ((max_value) = getMaxValue(a.value, b.value, c.value) ;>
            {
                d.value = max_value;
            }
        );