We are trying to parse Cobol sources.
Having a 'WHEN FALSE “N” clause in a level-88 condition causes the parser to fail, while the compiler has no problems with it.
Versions used:
Cobol: AcuCobol version 10.2.1, fixed format
SonarQube: Enterprise Edition Version 9.6.1 (build 59531)
– extract from the parser logging –
ERROR: Unable to parse COBOL source file : /build/builds/_NwxSV3v/0/dataserver-utilities/tdeltaplayground/sonar-parse-errors/cobol-src/source/PP0033 at line 6
Original contents starting from line 1 till line 8:
IDENTIFICATION DIVISION.
PROGRAM-ID. PP0033.
WORKING-STORAGE SECTION.
01 FILLER PIC X.
* The 'WHEN' causes the parsing to fail:
88 CONDITION-NAME VALUE "Y" WHEN FALSE "N".
PROCEDURE DIVISION.
GOBACK.
Preprocessed contents:
Parse error at line 6:
1: IDENTIFICATION DIVISION .
2: PROGRAM-ID . PP0033 .
3: WORKING-STORAGE SECTION .
4: 01 FILLER PIC X .
6: 88 CONDITION-NAME VALUE "Y" WHEN FALSE "N" .
^
7: PROCEDURE DIVISION .
8: GOBACK .
9: EOF
Please fix this parse-error.