When I create the following literal in working storage, I get E-compiler errors regarding the use of a Shift-Out character which is a Hex '0E'. It is confusing the period following the "J" as a "shift-out" character.
10 FILLER PIC X(2) VALUE 'J.'.
2849 IGYDS0157-E A SHIFT-OUT WAS FOUND IN COLUMN 55 WITHOUT A MATCHING SHIFT-IN IN A NONNUMERIC OR NATIONAL LITERAL.
LITERAL WAS PROCESSED AS WRITTEN.
2849 IGYDS0158-E A NONNUMERIC OR NATIONAL LITERAL CONTAINING DOUBLE-BYTE CHARACTERS WAS FOUND WHICH EXCEEDED THE MAXIMUM
LITERAL LENGTH OR REACHED END OF AREA "B" BEFORE TERMINATING. A LITERAL DELIMITER WAS PLACED AT
2849 IGYGR1056-E "VALUE" LITERAL "'J.'. '" EXCEEDED THE LENGTH SPECIFIED IN THE "PICTURE" DEFINITION.
THE LITERAL WAS TRUNCATED TO THE "PICTURE" DEFINITION LENGTH.
To get around this, I code the following--which I don't think is very human-readable:
10 FILLER PIC X(2) VALUE x'D10E'.
This seems like a dumb way to code periods for literals in working storage. Perhaps a MOVE "J." to Literal-Field might work, but it still seems unsatisfactory. Anybody else run into this and find a better solution than coding hex character values?