Skip to content

Commit b659883

Browse files
committed
Added <FIELD_ENDPOS>
1 parent c8b3008 commit b659883

3 files changed

Lines changed: 43 additions & 11 deletions

File tree

CodeGenEngine/CodeGenerator.dbl

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ namespace CodeGen.Engine
110110
;;Is CODEGEN_TPLDIR set in the environment?
111111
data templateFolder = Environment.GetEnvironmentVariable("CODEGEN_TPLDIR")
112112

113-
.ifdef OS_WINDOWNSET
113+
.ifndef D_NETCORE
114114

115115
if (String.IsNullOrWhiteSpace(templateFolder))
116116
begin
@@ -141,7 +141,7 @@ namespace CodeGen.Engine
141141
context.Author = authorName
142142
end
143143

144-
.ifdef OS_WINDOWNSET
144+
.ifndef D_NETCORE
145145
if (String.IsNullOrWhiteSpace(context.Author))
146146
begin
147147
;;Look in the registry for the value set by InstallShield
@@ -168,7 +168,7 @@ namespace CodeGen.Engine
168168
context.Company = companyName
169169
end
170170

171-
.ifdef OS_WINDOWNSET
171+
.ifndef D_NETCORE
172172
if (String.IsNullOrWhiteSpace(context.Company))
173173
begin
174174
;;No, look in the registry for the value set by InstallShield
@@ -1072,12 +1072,17 @@ namespace CodeGen.Engine
10721072
;;-------------------------------------------------------------------------
10731073
;;Report template file folder (verbose mode only)
10741074

1075-
if ((!errStatus) && context.VerboseLoggingEnabled)
1075+
if (!errStatus && context.VerboseLoggingEnabled)
10761076
begin
10771077
if (String.IsNullOrWhiteSpace(context.TemplateFolder)) then
1078+
begin
10781079
context.CurrentTask.Log("Template folder : Current directory", true, false)
1080+
context.TemplateFolder = String.Format(".{0}",Path.DirectorySeparatorChar)
1081+
end
10791082
else
1083+
begin
10801084
context.CurrentTask.Log("Template folder : " + context.TemplateFolder, true, false)
1085+
end
10811086
end
10821087

10831088
;;-------------------------------------------------------------------------
@@ -1191,14 +1196,16 @@ namespace CodeGen.Engine
11911196
;;-------------------------------------------------------------------------
11921197
;;Report output location (verbose mode only)
11931198

1194-
if (!errStatus)
1199+
if (!errStatus && context.VerboseLoggingEnabled)
11951200
begin
1196-
if (context.VerboseLoggingEnabled)
1201+
if (String.IsNullOrWhiteSpace(context.OutputFolder)) then
11971202
begin
1198-
if (String.IsNullOrWhiteSpace(context.OutputFolder)) then
1199-
context.CurrentTask.Log("Output folder : Current directory")
1200-
else
1201-
context.CurrentTask.Log("Output folder : " + context.OutputFolder)
1203+
context.CurrentTask.Log("Output folder : Current directory")
1204+
context.OutputFolder = String.Format(".{0}",Path.DirectorySeparatorChar)
1205+
end
1206+
else
1207+
begin
1208+
context.CurrentTask.Log("Output folder : " + context.OutputFolder)
12021209
end
12031210
end
12041211

@@ -1211,7 +1218,7 @@ namespace CodeGen.Engine
12111218
;;-------------------------------------------------------------------------
12121219
;;Report if we're replacing existing files
12131220

1214-
if (!errStatus)
1221+
if (!errStatus && context.VerboseLoggingEnabled)
12151222
begin
12161223
if (context.CurrentTask.ReplaceFiles) then
12171224
context.CurrentTask.VerboseLog("Replace files : YES")

CodeGenEngine/TokenExpanders/TokenExpanderFieldLoop.dbl

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ namespace CodeGen.Engine
9090
fieldLoopTokenExpanders.Add("FIELD_DRILL_PIXEL_COL", expandFieldDrillPixelCol)
9191
fieldLoopTokenExpanders.Add("FIELD_ELEMENT", expandFieldElement)
9292
fieldLoopTokenExpanders.Add("FIELD_ELEMENT0", expandFieldElement0)
93+
fieldLoopTokenExpanders.Add("FIELD_ENDPOS", expandFieldEndPos)
9394
fieldLoopTokenExpanders.Add("FIELD_ENUMBASEVAL", expandFieldEnumBaseVal)
9495
fieldLoopTokenExpanders.Add("FIELD_ENUMLENGTH", expandFieldEnumLength)
9596
fieldLoopTokenExpanders.Add("FIELD_ENUMSTEPVAL", expandFieldEnumStepVal)
@@ -643,6 +644,29 @@ namespace CodeGen.Engine
643644
mreturn ExpandFieldLoopToken(tkn, template, loops, doExpand)
644645
endmethod
645646

647+
private static method expandFieldEndPos, string
648+
tkn, @Token
649+
template, @FileNode
650+
loops, @IEnumerable<LoopNode>
651+
endparams
652+
proc
653+
lambda doExpand(str, field)
654+
begin
655+
data endpos, int
656+
if (template.Context.CurrentTask.PreserveArrays && (field.ArrayDimension[0]>1 || field.ArrayDimension[1]>1 || field.ArrayDimension[2]>1 || field.ArrayDimension[3]>1)) then
657+
begin
658+
data elements, int, field.ArrayDimension[0] + field.ArrayDimension[1] + field.ArrayDimension[2] + field.ArrayDimension[3]
659+
endpos = field.StartPosition + (field.Size * elements) - 1
660+
end
661+
else
662+
begin
663+
endpos = field.StartPosition + field.Size - 1
664+
end
665+
mreturn Convert.ToString(endpos)
666+
end
667+
mreturn ExpandFieldLoopToken(tkn, template, loops, doExpand)
668+
endmethod
669+
646670
private static method expandFieldEnumBaseVal, string
647671
tkn, @Token
648672
template, @FileNode

CodeGenEngine/Tokenizer.dbl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,7 @@ namespace CodeGen.Engine
327327
& { makeTokenMeta_AllVariants("FIELD_DRILLM", TokenType.FieldLoop, TokenValidity.FieldLoop | TokenValidity.KeySegmentLoop | TokenValidity.RelationSegmentLoop, true) },
328328
& { new TokenMeta() {Name = "FIELD_ELEMENT", TypeOfToken = TokenType.FieldLoop, IsPaired = false, Validity = TokenValidity.FieldLoop | TokenValidity.KeySegmentLoop | TokenValidity.RelationSegmentLoop, RequiresRepository = true} },
329329
& { new TokenMeta() {Name = "FIELD_ELEMENT0", TypeOfToken = TokenType.FieldLoop, IsPaired = false, Validity = TokenValidity.FieldLoop | TokenValidity.KeySegmentLoop | TokenValidity.RelationSegmentLoop, RequiresRepository = true} },
330+
& { new TokenMeta() {Name = "FIELD_ENDPOS", TypeOfToken = TokenType.FieldLoop, IsPaired = false, Validity = TokenValidity.FieldLoop | TokenValidity.KeySegmentLoop | TokenValidity.RelationSegmentLoop, RequiresRepository = true} },
330331
& { new TokenMeta() {Name = "FIELD_ENUMBASEVAL", TypeOfToken = TokenType.FieldLoop, IsPaired = false, Validity = TokenValidity.FieldLoop | TokenValidity.KeySegmentLoop | TokenValidity.RelationSegmentLoop, RequiresRepository = true} },
331332
& { new TokenMeta() {Name = "FIELD_ENUMLENGTH", TypeOfToken = TokenType.FieldLoop, IsPaired = false, Validity = TokenValidity.FieldLoop | TokenValidity.KeySegmentLoop | TokenValidity.RelationSegmentLoop, RequiresRepository = true} },
332333
& { new TokenMeta() {Name = "FIELD_ENUMSTEPVAL", TypeOfToken = TokenType.FieldLoop, IsPaired = false, Validity = TokenValidity.FieldLoop | TokenValidity.KeySegmentLoop | TokenValidity.RelationSegmentLoop, RequiresRepository = true} },

0 commit comments

Comments
 (0)