0

规则的右侧(无论是修改还是替换)可以包含各种语句,例如 eval、exec、emit、子模式、...

这些语句的执行顺序是否已定义,或者它们只是按照它们出现在右侧的顺序执行?

PS:GrGen.NET 是一个非常流行的基于 .NET 框架的图形转换库(在http://grgen.net上查看)。如果有人可以为 GrGen.NET 定义一个标签会很酷,我没有足够的声誉:-)。干杯!

4

1 回答 1

0

是的,有一个命令,这很重要!

例如,exec 语句总是在最后应用。因此,不能将 exec 中的任何变量传递给规则(参见如何在规则中执行脚本并将值传递回 booggie 2 中的规则?)。

执行顺序可以在 GrGen.NET 的手册中找到,如下:

  1. 从匹配中提取需要的元素
  2. 创建新节点
  3. 调用已使用子模式的重写代码(以及 evalhere、emithere、alternative Name、iterated Name)
  4. 调用嵌套迭代的重写代码
  5. 调用嵌套替代的重写代码
  6. 重定向边缘
  7. 重新输入(并合并)节点
  8. 创建新边
  9. 重新键入边
  10. 创建子模式
  11. 属性重新评估
  12. 去除边缘
  13. 删除节点
  14. 删除子模式
  15. 发射/执行
  16. 返回
于 2012-11-14T11:34:16.920 回答