CodeGen结构循环回路
CodeGen结构循环回路
structure循环是一个模板文件构造,它允许您迭代CodeGen拥有的有关结构的集合。为了使用结构循环,必须同时基于多个存储库结构生成代码。
CodeGen可以通过以下两种方式之一处理多个结构:
•可以在命令行上,在-s命令行选项之后指定多个结构,-ms命令行选项可用于指定所有结构将一起处理。
•file命令行选项可用于使用存储库文件定义作为代码生成的起点,并且该文件定义可以指定多个结构。
Structure循环由一对匹配的<Structure_LOOP>和</Structure_LOOP>标记分隔,它们围绕要为每个结构插入的模板代码。开始标记和结束标记之间的代码对于每个正在处理的结构重复。此代码可能包含任何其他标记。
如果只处理单个结构时在模板中遇到结构循环,则将生成错误,CodeGen将停止处理。
结构循环可以包含要为正在处理的每个结构重复的代码,也可以包含在处理单个结构时有效的任何其他标记。CodeGen只是根据正在处理的结构的数量,在打开和关闭结构循环令牌之间重复代码适当的次数,并在执行过程中切换结构上下文。
有两种类型的结构循环,称为多线结构循环和串联结构循环。
多线结构回路
当开始和结束结构循环标记出现在模板文件中的单独行上时,会发生多行结构循环,并分隔一行或多行模板代码,如下所示:
[code]
<STRUCTURE_LOOP>
code
</STRUCTURE_LOOP>
[code]
多行结构循环为处理的每个结构生成一行或多行输出代码。
串联结构回路
当开始和结束结构循环标记出现在模板文件中的同一行上,并分隔了模板代码行的一部分时,就存在行内结构循环,如下所示:
[code] <STRUCTURE_LOOP> code </STRUCTURE_LOOP> [code]
内联结构循环将代码生成到当前输出行中。