有怎样的规则的右手侧GrGen.NET执行一个固定的顺序?(Is there a fixed ord

2019-10-30 17:37发布

一个规则的右边(如果修改或替换不管),可以包含各种报表,例如EVAL,EXEC,散发,子模式,...

有没有在这些语句会被执行或者他们只是在它们出现在右手边的顺序执行一个定义的顺序?

PS:GrGen.NET是一个颇为流行的图形转换库(检查出来的http://grgen.net )基于.NET框架。 这将是冷静,如果有人可以定义GrGen.NET一个标签,我没有足够的声誉:-)。 干杯!

Answer 1:

是的,有一个顺序,它很重要!

例如,EXEC语句总是适用底。 因此,无论从EXEC变量可以传递到规则(参见到我怎样才能在规则中执行一个脚本,并传递值回在booggie 2规则? )。

执行顺序可以GrGen.NET的手册中找到并且是如下:

  1. 提取匹配需要的元素
  2. 创建新节点
  3. 呼叫改写使用的子模式代码(和evalhere,e​​mithere,替代名称,迭代名称)
  4. 嵌套iterateds召唤重写代码
  5. 嵌套的替代品呼叫重写代码
  6. 重定向边缘
  7. 重新输入(和合并)节点
  8. 创建新边缘
  9. 重新输入边缘
  10. 创建子模式
  11. 属性重新评估
  12. 删除边缘
  13. 删除节点
  14. 删除子模式
  15. EMIT / EXEC
  16. 返回


文章来源: Is there a fixed order of how the right-hand side of a rule is executed in GrGen.NET?