Skip to content

Commit aa874bd

Browse files
committed
#801 Allow gaps between segment redefined fields as long as they have a single common base redefine.
1 parent a6c0057 commit aa874bd

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

cobol-parser/src/main/scala/za/co/absa/cobrix/cobol/parser/asttransform/SegmentRedefinesMarker.scala

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,12 @@ class SegmentRedefinesMarker(segmentRedefines: Seq[String]) extends AstTransform
7676
foundRedefines += g.name
7777
g.withUpdatedIsSegmentRedefine(true)
7878
} else {
79-
ensureSegmentRedefinesAreIneGroup(g.name, isCurrentFieldASegmentRedefine = false)
79+
// Allow redefines in between segment redefines.
80+
val fieldMightBeRedefine = if (redefineGroupState == 1 && g.redefines.nonEmpty)
81+
true
82+
else
83+
false
84+
ensureSegmentRedefinesAreIneGroup(g.name, isCurrentFieldASegmentRedefine = fieldMightBeRedefine)
8085
// Check nested fields recursively only if segment redefines hasn't been found so far.
8186
if (redefineGroupState == 0) {
8287
processGroupFields(g)

0 commit comments

Comments
 (0)