Skip to content

Commit cc13587

Browse files
committed
Loys of changes for 5.6.5. Refer to release notes for full information.
1 parent 07b1213 commit cc13587

File tree

513 files changed

+10886
-21744
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

513 files changed

+10886
-21744
lines changed

CodeGen/CodeGen.dbl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -796,6 +796,14 @@ proc
796796
end
797797
end
798798

799+
;;-------------------------------------------------------------------------
800+
;;Are we being asked to suppress custom pluralization rules?
801+
802+
if (ok && CommandLineParser.Parse("ncp"))
803+
begin
804+
task.NoCustomPluralization = true
805+
end
806+
799807
;;-------------------------------------------------------------------------
800808
;;Determine which templates are to be processed
801809

CodeGen/Usage.dbl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,13 @@ proc
282282
Console.WriteLine(" SYNDEFNS, and this can be overridden with the -n option.")
283283
Console.WriteLine("")
284284

285+
;;Limit for text -------------------------------------------------------------------------------
286+
Console.WriteLine(" -ncp")
287+
Console.WriteLine(" No custom pluralization. Usiong this option suppresses the features")
288+
Console.WriteLine(" of the <STRUCTURE_PLURAL> and <STRUCTURE_NOPLURAL> tokens, making")
289+
Console.WriteLine(" them behave the same as <STRUCTURE_NAME>.")
290+
Console.WriteLine("")
291+
285292
;;Limit for text -------------------------------------------------------------------------------
286293
Console.WriteLine(" -nf")
287294
Console.WriteLine(" Don't append sub-folder to namespace. If a template file uses the")

CodeGenEngine/CodeGenTask.dbl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,12 @@ namespace CodeGen.Engine
252252
;;; </summary>
253253
public readwrite property NeverLoadDefaultButtons, Boolean
254254

255+
;;; <summary>
256+
;;; Suppresses the features of the <STRUCTURE_PLURAL> and <STRUCTURE_NOPLURAL> tokens,
257+
;;; making them behave the same as <STRUCTURE_NAME>.
258+
;;; </summary>
259+
public readwrite property NoCustomPluralization, Boolean
260+
255261
private mOutputFolder, String, String.Empty
256262
;;; <summary>
257263
;;; Output folder. If not specified then the folder defined by the environment variable

CodeGenEngine/ExpressionEvaluators/ExpressionEvaluator.dbl

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,16 @@ namespace CodeGen.Engine
167167
mreturn !template.Context.Taskset.Defines.Contains(expression.Value.Value.Replace("NOT_",""))
168168

169169
;;COUNTER_
170-
else if (expression.Value.Value.StartsWith("COUNTER_1_") || expression.Value.Value.StartsWith("COUNTER_2_")) then
170+
else if ((expression.Value.Value.StartsWith("COUNTER_1_")
171+
& || expression.Value.Value.StartsWith("COUNTER_2_"))
172+
& &&
173+
& (expression.Value.Value.Contains("_EQ_")
174+
& || expression.Value.Value.Contains("_NE_")
175+
& || expression.Value.Value.Contains("_LT_")
176+
& || expression.Value.Value.Contains("_GT_")
177+
& || expression.Value.Value.Contains("_LE_")
178+
& || expression.Value.Value.Contains("_GE_")
179+
& || expression.Value.Value.Contains("_DB_") )) then
171180
mreturn evaluateCounterValue(expression.Value, template, loops)
172181

173182
;;PROCESSED_ and REMAINING_

CodeGenEngine/ExpressionEvaluators/ExpressionEvaluatorFieldLoop.dbl

Lines changed: 101 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,15 @@ namespace CodeGen.Engine
126126
fieldLoopExpressionEvaluators.Add("ENABLED", evaluateFieldEnabled)
127127
fieldLoopExpressionEvaluators.Add("ENUM", evaluateFieldEnum)
128128
fieldLoopExpressionEvaluators.Add("ENUMERATED", evaluateFieldEnumerated)
129+
fieldLoopExpressionEvaluators.Add("EXPLICIT_GROUP", evaluateFieldExplicitGroup)
130+
fieldLoopExpressionEvaluators.Add("EXPLICIT_GROUP_NO_EXPAND", evaluateFieldExplicitGroupNoExpand)
129131
fieldLoopExpressionEvaluators.Add("FIELD_POSITION", evaluateFieldPosition)
130132
fieldLoopExpressionEvaluators.Add("FIRST_UNIQUE_KEY_SEGMENT", evaluateFirstUniqueKeySegment)
131133
fieldLoopExpressionEvaluators.Add("FORMAT", evaluateFieldFormat)
132-
fieldLoopExpressionEvaluators.Add("EXPLICIT_GROUP_NO_EXPAND", evaluateFieldExplicitGroupNoExpand)
133-
fieldLoopExpressionEvaluators.Add("IMPLICIT_GROUP_NO_EXPAND", evaluateFieldImplicitGroupNoExpand)
134+
fieldLoopExpressionEvaluators.Add("GROUP", evaluateFieldGroup)
135+
fieldLoopExpressionEvaluators.Add("GROUP_OVERLAY", evaluateFieldGroupOverlay)
136+
fieldLoopExpressionEvaluators.Add("GROUP_MEMBER_PREFIX", evaluateFieldGroupMemberPrefix)
137+
fieldLoopExpressionEvaluators.Add("GROUP_MEMBER_PREFIX_COMPILER", evaluateFieldGroupMemberPrefixCompiler)
134138
fieldLoopExpressionEvaluators.Add("HEADING", evaluateFieldHeading)
135139
fieldLoopExpressionEvaluators.Add("HELPID", evaluateFieldHelpID)
136140
fieldLoopExpressionEvaluators.Add("HYPERLINK", evaluateFieldHyperlink)
@@ -139,6 +143,8 @@ namespace CodeGen.Engine
139143
fieldLoopExpressionEvaluators.Add("I2", evaluateFieldI2)
140144
fieldLoopExpressionEvaluators.Add("I4", evaluateFieldI4)
141145
fieldLoopExpressionEvaluators.Add("I8", evaluateFieldI8)
146+
fieldLoopExpressionEvaluators.Add("IMPLICIT_GROUP", evaluateFieldImplicitGroup)
147+
fieldLoopExpressionEvaluators.Add("IMPLICIT_GROUP_NO_EXPAND", evaluateFieldImplicitGroupNoExpand)
142148
fieldLoopExpressionEvaluators.Add("INFOLINE", evaluateFieldInfoLine)
143149
fieldLoopExpressionEvaluators.Add("INPUT_CENTER", evaluateFieldInputCenter)
144150
fieldLoopExpressionEvaluators.Add("INPUT_LEFT", evaluateFieldInputLeft)
@@ -151,6 +157,7 @@ namespace CodeGen.Engine
151157
fieldLoopExpressionEvaluators.Add("LONGDESC", evaluateFieldLongDescription)
152158
fieldLoopExpressionEvaluators.Add("MAPPED", evaluateFieldMapped)
153159
fieldLoopExpressionEvaluators.Add("MAPPEDSTR", evaluateFieldMappedStr)
160+
fieldLoopExpressionEvaluators.Add("NAME_LINK",evaluateFieldNameLink)
154161
fieldLoopExpressionEvaluators.Add("NEGATIVE_ALLOWED", evaluateFieldNegativeAllowed)
155162
fieldLoopExpressionEvaluators.Add("NEGATIVE_ORZERO", evaluateFieldNegativeOrZero)
156163
fieldLoopExpressionEvaluators.Add("NEGATIVE_REQUIRED", evaluateFieldNegativeRequired)
@@ -217,6 +224,7 @@ namespace CodeGen.Engine
217224
fieldLoopExpressionEvaluators.Add("OVERLAY", evaluateFieldOverlay)
218225
fieldLoopExpressionEvaluators.Add("OVERLAY_OFFSET", evaluateFieldOverlayOffset)
219226
fieldLoopExpressionEvaluators.Add("PAINTCHAR", evaluateFieldPaintChar)
227+
fieldLoopExpressionEvaluators.Add("PAINTFIELD", evaluateFieldPaintField)
220228
fieldLoopExpressionEvaluators.Add("PII_SCRUB", evaluateFieldPiiScrub)
221229
fieldLoopExpressionEvaluators.Add("PKSEGMENT", evaluateFieldPkSegment)
222230
fieldLoopExpressionEvaluators.Add("PRECISION", evaluateFieldPrecision)
@@ -244,12 +252,10 @@ namespace CodeGen.Engine
244252
fieldLoopExpressionEvaluators.Add("TIMEOUT", evaluateFieldTimeout)
245253
fieldLoopExpressionEvaluators.Add("TOOLKIT", evaluateFieldToolkit)
246254
fieldLoopExpressionEvaluators.Add("UNDERLINE", evaluateFieldUnderline)
247-
fieldLoopExpressionEvaluators.Add("UNFLATTENED_GROUP", evaluateFieldUnflattenedGroup)
248-
fieldLoopExpressionEvaluators.Add("UNFLATTENED_EXPLICIT_GROUP", evaluateFieldUnflattenedExplicitGroup)
249-
fieldLoopExpressionEvaluators.Add("UNFLATTENED_IMPLICIT_GROUP", evaluateFieldUnflattenedImplicitGroup)
250255
fieldLoopExpressionEvaluators.Add("UPPERCASE", evaluateFieldUppercase)
251256
fieldLoopExpressionEvaluators.Add("USED_IN_RELATION", evaluateFieldUsedInRelation)
252257
fieldLoopExpressionEvaluators.Add("USER", evaluateFieldUser)
258+
fieldLoopExpressionEvaluators.Add("USER_TYPE", evaluateFieldUserType)
253259
fieldLoopExpressionEvaluators.Add("USERTEXT", evaluateFieldUserText)
254260
fieldLoopExpressionEvaluators.Add("USERTIMESTAMP", evaluateFieldUserTimeStamp)
255261
fieldLoopExpressionEvaluators.Add("VIEW_LENGTH", evaluateFieldViewLength)
@@ -1072,6 +1078,16 @@ namespace CodeGen.Engine
10721078
mreturn EvaluateFieldLoopExpression(tkn, template, loops, doEvaluate)
10731079
endmethod
10741080

1081+
private static method evaluateFieldExplicitGroup, boolean
1082+
tkn, @Token
1083+
template, @FileNode
1084+
loops, @IEnumerable<LoopNode>
1085+
endparams
1086+
proc
1087+
lambda doEvaluate(str, field, index) (field.GroupType == RpsFieldGroup.Yes && String.IsNullOrWhiteSpace(field.GroupStructure))
1088+
mreturn EvaluateFieldLoopExpression(tkn, template, loops, doEvaluate)
1089+
endmethod
1090+
10751091
private static method evaluateFieldPosition, boolean
10761092
tkn, @Token
10771093
template, @FileNode
@@ -1092,6 +1108,46 @@ namespace CodeGen.Engine
10921108
mreturn EvaluateFieldLoopExpression(tkn, template, loops, doEvaluate)
10931109
endmethod
10941110

1111+
private static method evaluateFieldGroup, boolean
1112+
tkn, @Token
1113+
template, @FileNode
1114+
loops, @IEnumerable<LoopNode>
1115+
endparams
1116+
proc
1117+
lambda doEvaluate(str, field, index) (field.GroupType == RpsFieldGroup.Yes)
1118+
mreturn EvaluateFieldLoopExpression(tkn, template, loops, doEvaluate)
1119+
endmethod
1120+
1121+
private static method evaluateFieldGroupOverlay, boolean
1122+
tkn, @Token
1123+
template, @FileNode
1124+
loops, @IEnumerable<LoopNode>
1125+
endparams
1126+
proc
1127+
lambda doEvaluate(str, field, index) (field.GroupType == RpsFieldGroup.Overlay)
1128+
mreturn EvaluateFieldLoopExpression(tkn, template, loops, doEvaluate)
1129+
endmethod
1130+
1131+
private static method evaluateFieldGroupMemberPrefix, boolean
1132+
tkn, @Token
1133+
template, @FileNode
1134+
loops, @IEnumerable<LoopNode>
1135+
endparams
1136+
proc
1137+
lambda doEvaluate(str, field, index) (field.IsGroup && !String.IsNullOrWhiteSpace(field.GroupMemberPrefix))
1138+
mreturn EvaluateFieldLoopExpression(tkn, template, loops, doEvaluate)
1139+
endmethod
1140+
1141+
private static method evaluateFieldGroupMemberPrefixCompiler, boolean
1142+
tkn, @Token
1143+
template, @FileNode
1144+
loops, @IEnumerable<LoopNode>
1145+
endparams
1146+
proc
1147+
lambda doEvaluate(str, field, index) (field.CompilerUsesGroupMemberPrefix)
1148+
mreturn EvaluateFieldLoopExpression(tkn, template, loops, doEvaluate)
1149+
endmethod
1150+
10951151
private static method evaluateFieldExplicitGroupNoExpand, boolean
10961152
tkn, @Token
10971153
template, @FileNode
@@ -1102,6 +1158,16 @@ namespace CodeGen.Engine
11021158
mreturn EvaluateFieldLoopExpression(tkn, template, loops, doEvaluate)
11031159
endmethod
11041160

1161+
private static method evaluateFieldImplicitGroup, boolean
1162+
tkn, @Token
1163+
template, @FileNode
1164+
loops, @IEnumerable<LoopNode>
1165+
endparams
1166+
proc
1167+
lambda doEvaluate(str, field, index) (field.GroupType == RpsFieldGroup.Yes && !String.IsNullOrWhiteSpace(field.GroupStructure))
1168+
mreturn EvaluateFieldLoopExpression(tkn, template, loops, doEvaluate)
1169+
endmethod
1170+
11051171
private static method evaluateFieldImplicitGroupNoExpand, boolean
11061172
tkn, @Token
11071173
template, @FileNode
@@ -1302,6 +1368,16 @@ namespace CodeGen.Engine
13021368
mreturn EvaluateFieldLoopExpression(tkn, template, loops, doEvaluate)
13031369
endmethod
13041370

1371+
private static method evaluateFieldNameLink, boolean
1372+
tkn, @Token
1373+
template, @FileNode
1374+
loops, @IEnumerable<LoopNode>
1375+
endparams
1376+
proc
1377+
lambda doEvaluate(str, field, index) (!field.NoNameLink)
1378+
mreturn EvaluateFieldLoopExpression(tkn, template, loops, doEvaluate)
1379+
endmethod
1380+
13051381
private static method evaluateFieldNegativeAllowed, boolean
13061382
tkn, @Token
13071383
template, @FileNode
@@ -2067,6 +2143,16 @@ namespace CodeGen.Engine
20672143
mreturn EvaluateFieldLoopExpression(tkn, template, loops, doEvaluate)
20682144
endmethod
20692145

2146+
private static method evaluateFieldPaintField, boolean
2147+
tkn, @Token
2148+
template, @FileNode
2149+
loops, @IEnumerable<LoopNode>
2150+
endparams
2151+
proc
2152+
lambda doEvaluate(str, field, index) (field.PaintField)
2153+
mreturn EvaluateFieldLoopExpression(tkn, template, loops, doEvaluate)
2154+
endmethod
2155+
20702156
private static method evaluateFieldPiiScrub, boolean
20712157
tkn, @Token
20722158
template, @FileNode
@@ -2409,36 +2495,6 @@ namespace CodeGen.Engine
24092495
mreturn EvaluateFieldLoopExpression(tkn, template, loops, doEvaluate)
24102496
endmethod
24112497

2412-
private static method evaluateFieldUnflattenedGroup, boolean
2413-
tkn, @Token
2414-
template, @FileNode
2415-
loops, @IEnumerable<LoopNode>
2416-
endparams
2417-
proc
2418-
lambda doEvaluate(str, field, index) (field.GroupType == RpsFieldGroup.Yes)
2419-
mreturn EvaluateFieldLoopExpression(tkn, template, loops, doEvaluate)
2420-
endmethod
2421-
2422-
private static method evaluateFieldUnflattenedExplicitGroup, boolean
2423-
tkn, @Token
2424-
template, @FileNode
2425-
loops, @IEnumerable<LoopNode>
2426-
endparams
2427-
proc
2428-
lambda doEvaluate(str, field, index) (field.GroupType == RpsFieldGroup.Yes && String.IsNullOrWhiteSpace(field.GroupStructure))
2429-
mreturn EvaluateFieldLoopExpression(tkn, template, loops, doEvaluate)
2430-
endmethod
2431-
2432-
private static method evaluateFieldUnflattenedImplicitGroup, boolean
2433-
tkn, @Token
2434-
template, @FileNode
2435-
loops, @IEnumerable<LoopNode>
2436-
endparams
2437-
proc
2438-
lambda doEvaluate(str, field, index) (field.GroupType == RpsFieldGroup.Yes && !String.IsNullOrWhiteSpace(field.GroupStructure))
2439-
mreturn EvaluateFieldLoopExpression(tkn, template, loops, doEvaluate)
2440-
endmethod
2441-
24422498
private static method evaluateFieldUppercase, boolean
24432499
tkn, @Token
24442500
template, @FileNode
@@ -2497,6 +2553,16 @@ namespace CodeGen.Engine
24972553
mreturn EvaluateFieldLoopExpression(tkn, template, loops, doEvaluate)
24982554
endmethod
24992555

2556+
private static method evaluateFieldUserType, boolean
2557+
tkn, @Token
2558+
template, @FileNode
2559+
loops, @IEnumerable<LoopNode>
2560+
endparams
2561+
proc
2562+
lambda doEvaluate(str, field, index) (!String.IsNullOrWhiteSpace(field.UserFieldType))
2563+
mreturn EvaluateFieldLoopExpression(tkn, template, loops, doEvaluate)
2564+
endmethod
2565+
25002566
private static method evaluateFieldUserText, boolean
25012567
tkn, @Token
25022568
template, @FileNode

CodeGenEngine/ParseScriptField.dbl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -551,13 +551,13 @@ namespace CodeGen.Engine
551551
("PAINT"),
552552
begin
553553
;;PAINT(character)
554-
Field.PaintCharacterSpecified = true
554+
Field.PaintField = true
555555
Field.PaintCharacter = StringTools.StringFromParens(FieldAttribute)
556556
end
557557

558558
("NOPAINT"),
559559
begin
560-
Field.PaintCharacterSpecified = false
560+
Field.PaintField = false
561561
Field.PaintCharacter = ""
562562
end
563563

CodeGenEngine/Parser.dbl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -637,7 +637,7 @@ namespace CodeGen.Engine
637637
end
638638
else if(tkn.Value == ')') then
639639
begin
640-
data targetToken = operatorStack.LastOrDefault(lambda(opTkn) { opTkn.Value == '(' })
640+
data targetToken = operatorStack.FirstOrDefault(lambda(opTkn) { opTkn.Value == '(' })
641641
while(operatorStack.Contains(targetToken))
642642
begin
643643
ProcessOperator(operatorStack, expressionStack)

CodeGenEngine/RepositoryTools.dbl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -556,6 +556,12 @@ namespace CodeGen.Engine
556556

557557
Child.StartPosition = Field.StartPosition + Child.StartPosition - 1
558558

559+
;; Remove the fields GROUP information
560+
561+
Child.GroupType = RpsFieldGroup.No
562+
Child.GroupStructure = String.Empty
563+
Child.GroupFields = new RpsFieldCollection()
564+
Child.GroupMemberPrefix = String.Empty
559565

560566
;TODO: IF OVERLAYS ARE INCLUDED THEN NEED TO UPDATE OVERLAY OFFSET. NOT SURE IF THIS IS EVEN FEASIBLE???
561567

0 commit comments

Comments
 (0)