Skip to content

Commit 4ae5e79

Browse files
committed
Added structure expression tokens <STRUCTURE_ALPHA_FIELDS>, <STRUCTURE_DATE_FIELDS>, <STRUCTURE_DECIMAL_FIELDS>, <STRUCTURE_IMPLIED_FIELDS>, <STRUCTURE_INTEGER_FIELDS>, <STRUCTURE_TIME_FIELDS> and <STRUCTURE_USER_FIELDS>, allowing template developers to determine whether the current structure contains fields of a particular type. Also bumped the version number for the next release to 6.0.1.
1 parent 65f8929 commit 4ae5e79

File tree

27 files changed

+156
-23
lines changed

27 files changed

+156
-23
lines changed

CodeConverter/CodeConverter/Properties/AssemblyInfo.dbl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,4 @@ import System.Runtime.InteropServices
3030
; Revision
3131
;
3232
{assembly: AssemblyVersion("1.0.0.0")}
33-
{assembly: AssemblyFileVersion("5.9.10.0")}
33+
{assembly: AssemblyFileVersion("6.0.1.0")}

CodeConverter/CodeConverterInterface/Properties/AssemblyInfo.dbl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,4 @@ import System.Runtime.InteropServices
3030
; Revision
3131
;
3232
{assembly: AssemblyVersion("1.0.0.0")}
33-
{assembly: AssemblyFileVersion("5.9.10.0")}
33+
{assembly: AssemblyFileVersion("6.0.1.0")}

CodeGen/Properties/AssemblyInfo.dbl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,5 @@ import System.Runtime.InteropServices
3030
; Revision
3131
;
3232
{assembly: AssemblyVersion("1.0.0.0")}
33-
{assembly: AssemblyFileVersion("5.9.10.0")}
33+
{assembly: AssemblyFileVersion("6.0.1.0")}
3434

CodeGenEngine/ExpressionEvaluators/ExpressionEvaluatorStructure.dbl

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,14 @@ namespace CodeGen.Engine
7070
structureExpressionEvaluators.Add("STRUCTURE_DISPLAY_FIELD", evaluateStructureDisplayField)
7171
structureExpressionEvaluators.Add("STRUCTURE_KEYS", evaluateStructureKeys)
7272
structureExpressionEvaluators.Add("STRUCTURE_LDESC", evaluateStructureLongDesc)
73+
74+
structureExpressionEvaluators.Add("STRUCTURE_ALPHA_FIELDS", evaluateStructureAlphaFields)
75+
structureExpressionEvaluators.Add("STRUCTURE_DECIMAL_FIELDS", evaluateStructureDecimalFields)
76+
structureExpressionEvaluators.Add("STRUCTURE_IMPLIED_FIELDS", evaluateStructureImpliedFields)
77+
structureExpressionEvaluators.Add("STRUCTURE_INTEGER_FIELDS", evaluateStructureIntegerFields)
78+
structureExpressionEvaluators.Add("STRUCTURE_DATE_FIELDS", evaluateStructureDateFields)
79+
structureExpressionEvaluators.Add("STRUCTURE_TIME_FIELDS", evaluateStructureTimeFields)
80+
structureExpressionEvaluators.Add("STRUCTURE_USER_FIELDS", evaluateStructureUserFields)
7381
endmethod
7482

7583
;; -------------------------------------------------------------------------------------------------------------------------------
@@ -191,6 +199,124 @@ namespace CodeGen.Engine
191199
mreturn evaluateStructureExpression(tkn, template, loops, doEvaluate)
192200
endmethod
193201

202+
203+
204+
205+
206+
private static method evaluateStructureAlphaFields, boolean
207+
tkn, @Token
208+
template, @FileNode
209+
loops, @IEnumerable<LoopNode>
210+
endparams
211+
proc
212+
lambda doEvaluate(str)
213+
begin
214+
;TODO: Compiler Bug: fails if inlined
215+
data firstField = str.Fields.FirstOrDefault(lambda(field) {field.DataType==RpsFieldDataType.Alpha})
216+
mreturn firstField != ^null
217+
end
218+
mreturn evaluateStructureExpression(tkn, template, loops, doEvaluate)
219+
endmethod
220+
221+
private static method evaluateStructureDecimalFields, boolean
222+
tkn, @Token
223+
template, @FileNode
224+
loops, @IEnumerable<LoopNode>
225+
endparams
226+
proc
227+
lambda doEvaluate(str)
228+
begin
229+
;TODO: Compiler Bug: fails if inlined
230+
data firstField = str.Fields.FirstOrDefault(lambda(field) {field.DataType==RpsFieldDataType.Decimal && field.Precision==0})
231+
mreturn firstField != ^null
232+
end
233+
mreturn evaluateStructureExpression(tkn, template, loops, doEvaluate)
234+
endmethod
235+
236+
private static method evaluateStructureImpliedFields, boolean
237+
tkn, @Token
238+
template, @FileNode
239+
loops, @IEnumerable<LoopNode>
240+
endparams
241+
proc
242+
lambda doEvaluate(str)
243+
begin
244+
;TODO: Compiler Bug: fails if inlined
245+
data firstField = str.Fields.FirstOrDefault(lambda(field) {field.DataType==RpsFieldDataType.Decimal && field.Precision>0})
246+
mreturn firstField != ^null
247+
end
248+
mreturn evaluateStructureExpression(tkn, template, loops, doEvaluate)
249+
endmethod
250+
251+
private static method evaluateStructureIntegerFields, boolean
252+
tkn, @Token
253+
template, @FileNode
254+
loops, @IEnumerable<LoopNode>
255+
endparams
256+
proc
257+
lambda doEvaluate(str)
258+
begin
259+
;TODO: Compiler Bug: fails if inlined
260+
data firstField = str.Fields.FirstOrDefault(lambda(field) {field.DataType==RpsFieldDataType.Integer && field.Precision>0})
261+
mreturn firstField != ^null
262+
end
263+
mreturn evaluateStructureExpression(tkn, template, loops, doEvaluate)
264+
endmethod
265+
266+
private static method evaluateStructureDateFields, boolean
267+
tkn, @Token
268+
template, @FileNode
269+
loops, @IEnumerable<LoopNode>
270+
endparams
271+
proc
272+
lambda doEvaluate(str)
273+
begin
274+
;TODO: Compiler Bug: fails if inlined
275+
data firstField = str.Fields.FirstOrDefault(lambda(field) {
276+
& field.DataTypeSubClass == RpsFieldSubclass.UserDate
277+
& || field.DataTypeSubClass == RpsFieldSubclass.DateYYYYJJJ
278+
& || field.DataTypeSubClass == RpsFieldSubclass.DateYYYYPP
279+
& || field.DataTypeSubClass == RpsFieldSubclass.DateYYYYMMDD
280+
& || field.DataTypeSubClass == RpsFieldSubclass.DateYYJJJ
281+
& || field.DataTypeSubClass == RpsFieldSubclass.DateYYPP
282+
& || field.DataTypeSubClass == RpsFieldSubclass.DateYYMMDD })
283+
mreturn firstField != ^null
284+
end
285+
mreturn evaluateStructureExpression(tkn, template, loops, doEvaluate)
286+
endmethod
287+
288+
private static method evaluateStructureTimeFields, boolean
289+
tkn, @Token
290+
template, @FileNode
291+
loops, @IEnumerable<LoopNode>
292+
endparams
293+
proc
294+
lambda doEvaluate(str)
295+
begin
296+
;TODO: Compiler Bug: fails if inlined
297+
data firstField = str.Fields.FirstOrDefault(lambda(field) {
298+
& field.DataTypeSubClass == RpsFieldSubclass.TimeHHMM
299+
& || field.DataTypeSubClass == RpsFieldSubclass.TimeHHMMSS })
300+
mreturn firstField != ^null
301+
end
302+
mreturn evaluateStructureExpression(tkn, template, loops, doEvaluate)
303+
endmethod
304+
305+
private static method evaluateStructureUserFields, boolean
306+
tkn, @Token
307+
template, @FileNode
308+
loops, @IEnumerable<LoopNode>
309+
endparams
310+
proc
311+
lambda doEvaluate(str)
312+
begin
313+
;TODO: Compiler Bug: fails if inlined
314+
data firstField = str.Fields.FirstOrDefault(lambda(field) {field.DataType==RpsFieldDataType.User})
315+
mreturn firstField != ^null
316+
end
317+
mreturn evaluateStructureExpression(tkn, template, loops, doEvaluate)
318+
endmethod
319+
194320
;;===================================================================================
195321

196322
private static method evaluateStructureHasField, boolean

CodeGenEngine/Properties/AssemblyInfo.dbl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import System.Runtime.InteropServices
3030
; Revision
3131
;
3232
{assembly: AssemblyVersion("1.0.0.0")}
33-
{assembly: AssemblyFileVersion("5.9.10.0")}
33+
{assembly: AssemblyFileVersion("6.0.1.0")}
3434

3535

3636

CodeGenEngine/Tokenizer.dbl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1065,11 +1065,16 @@ namespace CodeGen.Engine
10651065
expressions.Add("STRING", TokenValidity.MethodLoop | TokenValidity.ParameterLoop)
10661066
expressions.Add("STRUCTFIELD", TokenValidity.FieldLoop | TokenValidity.KeySegmentLoop | TokenValidity.RelationSegmentLoop)
10671067
expressions.Add("STRUCTURE", TokenValidity.ParameterLoop)
1068+
expressions.Add("STRUCTURE_ALPHA_FIELDS", TokenValidity.AnyWhere)
10681069
expressions.Add("STRUCTURE_ASCII", TokenValidity.Anywhere)
1070+
expressions.Add("STRUCTURE_DATE_FIELDS", TokenValidity.AnyWhere)
1071+
expressions.Add("STRUCTURE_DECIMAL_FIELDS", TokenValidity.AnyWhere)
10691072
expressions.Add("STRUCTURE_DISPLAY_FIELD", TokenValidity.Anywhere)
10701073
expressions.Add("STRUCTURE_FILES", TokenValidity.Anywhere)
10711074
expressions.Add("STRUCTURE_HAS_UNIQUE_KEY", TokenValidity.Anywhere)
10721075
expressions.Add("STRUCTURE_HAS_UNIQUE_PK", TokenValidity.Anywhere)
1076+
expressions.Add("STRUCTURE_IMPLIED_FIELDS", TokenValidity.Anywhere)
1077+
expressions.Add("STRUCTURE_INTEGER_FIELDS", TokenValidity.AnyWhere)
10731078
expressions.Add("STRUCTURE_ISAM", TokenValidity.Anywhere)
10741079
expressions.Add("STRUCTURE_KEYS", TokenValidity.Anywhere)
10751080
expressions.Add("STRUCTURE_LDESC", TokenValidity.Anywhere)
@@ -1080,8 +1085,10 @@ namespace CodeGen.Engine
10801085
expressions.Add("STRUCTURE_RELATIONS", TokenValidity.Anywhere)
10811086
expressions.Add("STRUCTURE_RELATIVE", TokenValidity.Anywhere)
10821087
expressions.Add("STRUCTURE_TAGS", TokenValidity.Anywhere)
1088+
expressions.Add("STRUCTURE_TIME_FIELDS", TokenValidity.AnyWhere)
10831089
expressions.Add("STRUCTURE_SINGLE_TAG", TokenValidity.Anywhere)
10841090
expressions.Add("STRUCTURE_USER_DEFINED", TokenValidity.Anywhere)
1091+
expressions.Add("STRUCTURE_USER_FIELDS", TokenValidity.AnyWhere)
10851092
expressions.Add("STRUCTURE_UTEXT", TokenValidity.Anywhere)
10861093
expressions.Add("SUBROUTINE", TokenValidity.MethodLoop)
10871094
expressions.Add("TERABYTE", TokenValidity.FileLoop)

CodeGenEngine/codegen.def

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242

4343
.ifndef CODEGEN_VERSION
4444

45-
.define CODEGEN_VERSION "V5.9.10"
45+
.define CODEGEN_VERSION "V6.0.1"
4646
.define CODEGEN_BUFSZ 32768
4747

4848
.endc

CodeGenSetup/CodeGenSetup.wixproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<ProductVersion>3.9</ProductVersion>
77
<ProjectGuid>ac801722-1323-4fae-a93e-26499b03682e</ProjectGuid>
88
<SchemaVersion>2.0</SchemaVersion>
9-
<OutputName>CodeGen_5.9.10</OutputName>
9+
<OutputName>CodeGen_6.0.1</OutputName>
1010
<OutputType>Package</OutputType>
1111
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
1212
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>

CodeGenSetup/Product.wxs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
<Product
1212
Name="CodeGen"
13-
Version="5.9.10"
13+
Version="6.0.1"
1414
Id="{0851DE48-1696-4B71-A274-88F18E514FAE}"
1515
Language="1033"
1616
Manufacturer="Synergex International Corporation"

CodeGenSetupCustomActions/Properties/AssemblyInfo.dbl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,4 @@ import System.Runtime.InteropServices
3030
; Revision
3131
;
3232
{assembly: AssemblyVersion("1.0.0.0")}
33-
{assembly: AssemblyFileVersion("5.9.10.0")}
33+
{assembly: AssemblyFileVersion("6.0.1.0")}

0 commit comments

Comments
 (0)