Skip to content

Commit 0d69676

Browse files
committed
Added a new structure expansion token <STRUCTURE_FILES> that evaluates to the number of repository file definitions that the current structure is assigned to.
1 parent a647fd0 commit 0d69676

4 files changed

Lines changed: 12 additions & 0 deletions

File tree

CodeGenEngine/TokenExpanders/TokenExpanderStructure.dbl

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ namespace CodeGen.Engine
8686
structureTokenExpanders.Add("STRUCTURE_CHILDREN", expandStructureChildren)
8787
structureTokenExpanders.Add("STRUCTURE_DESC", expandStructureDesc)
8888
structureTokenExpanders.Add("STRUCTURE_FIELDS", expandStructureFields)
89+
structureTokenExpanders.Add("STRUCTURE_FILES", expandStructureFiles)
8990
structureTokenExpanders.Add("STRUCTURE_KEYS", expandStructureKeys)
9091
structureTokenExpanders.Add("STRUCTURE_LDESC", expandStructureLongDescription)
9192
structureTokenExpanders.Add("STRUCTURE_NAME", expandStructureName)
@@ -652,6 +653,16 @@ namespace CodeGen.Engine
652653
mreturn ExpandStructureToken(tkn, template, loops, doExpand)
653654
endmethod
654655

656+
private static method expandStructureFiles, string
657+
tkn, @Token
658+
template, @FileNode
659+
loops, @IEnumerable<LoopNode>
660+
endparams
661+
proc
662+
lambda doExpand(str) str.Files.Count.ToString()
663+
mreturn ExpandStructureToken(tkn, template, loops, doExpand)
664+
endmethod
665+
655666
private static method expandStructureKeys, string
656667
tkn, @Token
657668
template, @FileNode

CodeGenEngine/Tokenizer.dbl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,7 @@ namespace CodeGen.Engine
254254
& { new TokenMeta() {Name = "STRUCTURE_CHILDREN", TypeOfToken = TokenType.StructureInfo, IsPaired = false, Validity = TokenValidity.Anywhere, RequiresRepository = true} },
255255
& { new TokenMeta() {Name = "STRUCTURE_DESC", TypeOfToken = TokenType.StructureInfo, IsPaired = false, Validity = TokenValidity.Anywhere, RequiresRepository = true} },
256256
& { new TokenMeta() {Name = "STRUCTURE_FIELDS", TypeOfToken = TokenType.StructureInfo, IsPaired = false, Validity = TokenValidity.Anywhere, RequiresRepository = true} },
257+
& { new TokenMeta() {Name = "STRUCTURE_FILES", TypeOfToken = TokenType.StructureInfo, IsPaired = false, Validity = TokenValidity.Anywhere, RequiresRepository = true} },
257258
& { new TokenMeta() {Name = "STRUCTURE_KEYS", TypeOfToken = TokenType.StructureInfo, IsPaired = false, Validity = TokenValidity.Anywhere, RequiresRepository = true} },
258259
& { new TokenMeta() {Name = "STRUCTURE_LDESC", TypeOfToken = TokenType.StructureInfo, IsPaired = false, Validity = TokenValidity.Anywhere, RequiresRepository = true} },
259260
& { makeTokenMeta_AllVariants("STRUCTURE_NAME", TokenType.StructureInfo, TokenValidity.Anywhere, true) },

Documentation/CodeGen.chm

1.03 KB
Binary file not shown.

Documentation/CodeGen.hsm

3.91 KB
Binary file not shown.

0 commit comments

Comments
 (0)