0

我有一组概念节点,我正在使用宏Command进行迭代。是一个抽象的概念。我已经为具体的子概念定义了模板和缩减规则,例如:$LOOP$CommandOutline

template tpl_Outline
input    Outline

...

reduction rules:
  [concept    Outline ] --> tpl_Outline
  [inheritors false   ]
  [condition  <always>]

问题:我如何从只知道节点是抽象类型的宏内部为具体概念调用适当的生成器规则?$LOOP$Command

[编辑] 由于建议的答案是特定于循环元素集合,当没有循环时我将如何做同样的事情?即如何为给定节点(例如当前节点的某个子节点)触发配置的规则。

注意 1:我尝试使用 just $LOOP$[null],希望元素节点能够通过适当的规则自动处理,但这只是null在输出中产生了 s 。

注2:我试过$LOOP[$COPY_SRC$[null]]了,但产生了

textgen error: 'No textgen for Draw.structure.Outline' in [actualArgument] Outline null[847086916111387210] in Draw.sandbox@0

[编辑 2]这实际上是一个可行的解决方案。有什么帮助可能是使缓存无效(只是重建项目不起作用)。

注3:以前我使用模板开关来调用基于具体概念的适当模板,但我现在想支持自定义扩展,Command所以我不能再创建一个详尽的模板开关。

4

2 回答 2

1

尝试使用 $COPY_SRCL$(这里的 L 代表循环),这个宏是专为您的情况而设计的。此外,模板开关是可扩展的

于 2018-07-09T11:32:02.210 回答
1

关于您的 Build --> Rebuild Project 问题:有时 File --> Invalidate caches 可以帮助解决此类问题。

于 2018-07-09T18:28:19.257 回答