TypeCobol
TypeCobol copied to clipboard
Adapt codegen for Type Bool and IBM Enterprise COBOL for z/OS 6.2
What is the current problem
With IBM Enterprise COBOL for z/OS 6.2 we can now use set xxx to false
syntax.
This will simplify the code generation of our type Bool.
With this sample:
IDENTIFICATION DIVISION.
PROGRAM-ID. Sample.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Var1 type Bool.
procedure division.
set Var1 to false
.
END PROGRAM Sample.
Current codegen
IDENTIFICATION DIVISION.
PROGRAM-ID. Sample.
DATA DIVISION.
WORKING-STORAGE SECTION.
*01 Var1 type Bool.
01 Var1-value PIC X VALUE LOW-VALUE.
88 Var1 VALUE 'T'.
88 Var1-false VALUE 'F'
X'00' thru 'S'
'U' thru X'FF'.
procedure division.
* set Var1 to false
SET Var1-false TO TRUE
.
END PROGRAM Sample.
Describe the solution you'd like New codegen:
IDENTIFICATION DIVISION.
PROGRAM-ID. Sample.
DATA DIVISION.
WORKING-STORAGE SECTION.
*01 Var1 type Bool.
01 Var1-value PIC X VALUE LOW-VALUE.
88 Var1 VALUE 'T' FALSE 'F'.
procedure division.
set Var1 to false
.
END PROGRAM Sample.
Technical
- In Skeleton.xml, delete rule
BOOL.SET
which changeset to false
instruction - In Skeleton.xml, adapt rule
BOOL.DECLARE
:
@{
var items = "";
if (@Model.value.Length == 0) {
items = @Model.level + " " + @Model.name + "-value PIC X VALUE LOW-VALUE" + @Model.global + ".";
}
else {
items = @Model.level + " " + @Model.name + "-value PIC X VALUE " + @Model.value + @Model.global + ".";
}
}
@items
88 @Model.name VALUE 'T' false 'F'.
Warning: I didn't test this code.
- Use
autoReplace
to regenerate all tests results and check that they are ok
How to test automatically Standard codegen tests.