Skip to content

Commit 08195a3

Browse files
committed
Added a new file loop expansion token <FLOOP_STRUCTURE_COUNT> and a new file loop expression <IF MULTIPLE_STRUCTURES_ASSIGNED>.
1 parent 4497031 commit 08195a3

3 files changed

Lines changed: 24 additions & 0 deletions

File tree

CodeGenEngine/ExpressionEvaluators/ExpressionEvaluatorFileLoop.dbl

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ namespace CodeGen.Engine
6565
fileLoopExpressionEvaluators.Add("CHANGE_TRACKING", evaluateFloopChangeTracking)
6666
fileLoopExpressionEvaluators.Add("DESCRIPTION", evaluateFloopDescription)
6767
fileLoopExpressionEvaluators.Add("ISAM", evaluateFloopIsam)
68+
fileLoopExpressionEvaluators.Add("MULTIPLE_STRUCTURES_ASSIGNED", evaluateFloopMultipleStructures)
6869
fileLoopExpressionEvaluators.Add("NOCHANGE_TRACKING", evaluateFloopNoChangeTracking)
6970
fileLoopExpressionEvaluators.Add("NODESCRIPTION", evaluateFloopNoDescription)
7071
fileLoopExpressionEvaluators.Add("NORECORDCOMPRESSION", evaluateFloopNoRecordCompression)
@@ -162,6 +163,16 @@ namespace CodeGen.Engine
162163
mreturn EvaluateFileLoopExpression(tkn, template, loops, doEvaluate)
163164
endmethod
164165

166+
private static method evaluateFloopMultipleStructures, boolean
167+
tkn, @Token
168+
template, @FileNode
169+
loops, @IEnumerable<LoopNode>
170+
endparams
171+
proc
172+
lambda doEvaluate(files, currentfile, index) (currentfile.StructureCount > 1)
173+
mreturn EvaluateFileLoopExpression(tkn, template, loops, doEvaluate)
174+
endmethod
175+
165176
private static method evaluateFloopNoChangeTracking, boolean
166177
tkn, @Token
167178
template, @FileNode

CodeGenEngine/TokenExpanders/TokenExpanderFileLoop.dbl

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ namespace CodeGen.Engine
7474
fileLoopTokenExpanders.Add("FLOOP_RPS_NAME", expandFloopRpsName)
7575
fileLoopTokenExpanders.Add("FLOOP_STATIC_RFA", expandFloopStaticRfa)
7676
fileLoopTokenExpanders.Add("FLOOP_STORED_GRFA", expandFloopStoredGrfa)
77+
fileLoopTokenExpanders.Add("FLOOP_STRUCTURE_COUNT", expandFloopStructureCount)
7778
fileLoopTokenExpanders.Add("FLOOP_TYPE", expandFloopType)
7879
fileLoopTokenExpanders.Add("FLOOP_UTEXT", expandFloopUserText)
7980

@@ -286,6 +287,16 @@ namespace CodeGen.Engine
286287
mreturn ExpandFileLoopToken(tkn, template, loops, doExpand)
287288
endmethod
288289

290+
private static method expandFloopStructureCount, string
291+
tkn, @Token
292+
template, @FileNode
293+
loops, @IEnumerable<LoopNode>
294+
endparams
295+
proc
296+
lambda doExpand(currentFile) %string(currentFile.StructureCount)
297+
mreturn ExpandFileLoopToken(tkn, template, loops, doExpand)
298+
endmethod
299+
289300
private static method expandFloopType, string
290301
tkn, @Token
291302
template, @FileNode

CodeGenEngine/Tokenizer.dbl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -546,6 +546,7 @@ namespace CodeGen.Engine
546546
& { makeTokenMeta_AllVariants("FLOOP_RPS_NAME", TokenType.FileLoop, TokenValidity.FileLoop, true) },
547547
& { makeTokenMeta_UpperLower ("FLOOP_STATIC_RFA", TokenType.FileLoop, TokenValidity.FileLoop, true) },
548548
& { makeTokenMeta_UpperLower ("FLOOP_STORED_GRFA", TokenType.FileLoop, TokenValidity.FileLoop, true) },
549+
& { makeTokenMeta_UpperLower ("FLOOP_STRUCTURE_COUNT", TokenType.FileLoop, TokenValidity.FileLoop, true) },
549550
& { new TokenMeta() {Name = "FLOOP_TYPE", TypeOfToken = TokenType.FileLoop, IsPaired = false, Validity = TokenValidity.FileLoop, RequiresRepository = true} },
550551
& { new TokenMeta() {Name = "FLOOP_UTEXT", TypeOfToken = TokenType.FileLoop, IsPaired = false, Validity = TokenValidity.FileLoop, RequiresRepository = true} },
551552
&
@@ -922,6 +923,7 @@ namespace CodeGen.Engine
922923
expressions.Add("MORE_OUT_OR_INOUT", TokenValidity.ParameterLoop)
923924
expressions.Add("MULTIPLE_SEGMENTS", TokenValidity.KeyLoop)
924925
expressions.Add("MULTIPLE_STRUCTURES", TokenValidity.Anywhere)
926+
expressions.Add("MULTIPLE_STRUCTURES_ASSIGNED", TokenValidity.FileLoop)
925927
expressions.Add("MULTIPLE_TAGS", TokenValidity.TagLoop)
926928
expressions.Add("NAME_LINK", TokenValidity.FieldLoop)
927929
expressions.Add("NAMESPACE", TokenValidity.Anywhere)

0 commit comments

Comments
 (0)