I am trying to use nested if statements in Cobol. As far as I can tell I am following the style guides, but keep receiving the error:
file_name.cob:64: Error: syntax error, unexpected ELSE <- This is the second ELSE statement
The purpose of the code is to function as a Caesar cipher, but it seems to only be the nested if statements that are producing the error. I tried putting the nested statements after the ELSE clause of the initial IF statement, but that was unsuccessful as well.
edit: I am using open-cobol, and and compiling with the '-free' option
IF CharCount < 26
ADD firstnum, CharCount GIVING stringShift.
DISPLAY stringShift.
IF FUNCTION MOD(stringShift, 26) IS NOT ZERO
MOVE FUNCTION MOD(stringShift, 26) to stringShift
DISPLAY stringShift
MOVE abc(stringShift:stringShift) TO newChar
DISPLAY newChar
STRING newString DELIMITED BY "", newChar DELIMITED BY SIZE INTO newString
DISPLAY newString
ELSE
STRING newString DELIMITED BY "", searchChar DELIMITED BY SIZE INTO newString
DISPLAY newString
END-IF
ELSE
STRING newString DELIMITED BY "", searchChar DELIMITED BY SIZE INTO newString
DISPLAY newString
END-IF.
Thanks!
Just wanted to share the answer here, as it was answered in the comp.lang.cobol google group. It was the two periods after the first ADD and DISPLAY lines that were causing the problems. It now compiles successfully.
The lines should appear as:
ADD firstnum, CharCount GIVING stringShift
DISPLAY stringShift