CodeGen结构循环回路
CodeGen結(jié)構(gòu)循環(huán)回路
structure循環(huán)是一個(gè)模板文件構(gòu)造,它允許您迭代CodeGen擁有的有關(guān)結(jié)構(gòu)的集合。為了使用結(jié)構(gòu)循環(huán),必須同時(shí)基于多個(gè)存儲(chǔ)庫(kù)結(jié)構(gòu)生成代碼。
CodeGen可以通過(guò)以下兩種方式之一處理多個(gè)結(jié)構(gòu):
?可以在命令行上,在-s命令行選項(xiàng)之后指定多個(gè)結(jié)構(gòu),-ms命令行選項(xiàng)可用于指定所有結(jié)構(gòu)將一起處理。
?file命令行選項(xiàng)可用于使用存儲(chǔ)庫(kù)文件定義作為代碼生成的起點(diǎn),并且該文件定義可以指定多個(gè)結(jié)構(gòu)。
Structure循環(huán)由一對(duì)匹配的<Structure_LOOP>和</Structure_LOOP>標(biāo)記分隔,它們圍繞要為每個(gè)結(jié)構(gòu)插入的模板代碼。開(kāi)始標(biāo)記和結(jié)束標(biāo)記之間的代碼對(duì)于每個(gè)正在處理的結(jié)構(gòu)重復(fù)。此代碼可能包含任何其他標(biāo)記。
如果只處理單個(gè)結(jié)構(gòu)時(shí)在模板中遇到結(jié)構(gòu)循環(huán),則將生成錯(cuò)誤,CodeGen將停止處理。
結(jié)構(gòu)循環(huán)可以包含要為正在處理的每個(gè)結(jié)構(gòu)重復(fù)的代碼,也可以包含在處理單個(gè)結(jié)構(gòu)時(shí)有效的任何其他標(biāo)記。CodeGen只是根據(jù)正在處理的結(jié)構(gòu)的數(shù)量,在打開(kāi)和關(guān)閉結(jié)構(gòu)循環(huán)令牌之間重復(fù)代碼適當(dāng)?shù)拇螖?shù),并在執(zhí)行過(guò)程中切換結(jié)構(gòu)上下文。
有兩種類(lèi)型的結(jié)構(gòu)循環(huán),稱(chēng)為多線結(jié)構(gòu)循環(huán)和串聯(lián)結(jié)構(gòu)循環(huán)。
多線結(jié)構(gòu)回路
當(dāng)開(kāi)始和結(jié)束結(jié)構(gòu)循環(huán)標(biāo)記出現(xiàn)在模板文件中的單獨(dú)行上時(shí),會(huì)發(fā)生多行結(jié)構(gòu)循環(huán),并分隔一行或多行模板代碼,如下所示:
[code]
<STRUCTURE_LOOP>
code
</STRUCTURE_LOOP>
[code]
多行結(jié)構(gòu)循環(huán)為處理的每個(gè)結(jié)構(gòu)生成一行或多行輸出代碼。
串聯(lián)結(jié)構(gòu)回路
當(dāng)開(kāi)始和結(jié)束結(jié)構(gòu)循環(huán)標(biāo)記出現(xiàn)在模板文件中的同一行上,并分隔了模板代碼行的一部分時(shí),就存在行內(nèi)結(jié)構(gòu)循環(huán),如下所示:
[code] <STRUCTURE_LOOP> code </STRUCTURE_LOOP> [code]
內(nèi)聯(lián)結(jié)構(gòu)循環(huán)將代碼生成到當(dāng)前輸出行中。
總結(jié)
以上是生活随笔為你收集整理的CodeGen结构循环回路的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: CodeGen处理Synergy方法目录
- 下一篇: CodeGen标记循环