Page 1 of 1

Mainframe vs Windows - Errors

PostPosted: Mon Apr 27, 2015 5:59 am
by newjb
Sorry, hopefully I am posting this in the correct location. I am using Natural within Windows:
Software AG Natural for Windows. -- Version 6.3.14 PL 0

Mainframe vs Windows - Errors.

I have a Natural program that I am able to view either within my windows environment or on the mainframe. Both locations STOW correctly. However, when you view the program within the windows environment, the +/- for a FOR and IF statement are both highlighted in red.

Is it possible for a program to STOW ok, yet still have problems with a statement? I can't find any other information for this indicator within the environment.

Attached & below is an example. So there may be problem with the way this - FOR and IF statement are setup that I am not seeing yet....? I’m assuming that is why there is a red box next to those parts of the code.. Sorry, still new to this. The attachment shows the code that is marked in red.

4860 FOR #AA = 1 TO 6
4862 IF #H-BUDGET(#AA) > ' '
4864 EXAMINE #BUDGET-ARRAY(*) FOR #H-BUDGET(#AA) GIVING INDEX #BB
4866 IF #BB > 0 AND
4868 #H-FUND(#AA) = #FUND-ARRAY(#BB) AND
4870 #H-OBJ-CAT(#AA) = #OBJ-CAT(#BB)
4872 ADD #H-OBJ-CAT-AMT(#AA) TO #OBJ-CAT-AMT(#BB)
4874 ** ADD #H-OBJ-CAT-AMT(#AA) TO #WORK-INCM.#AMNT-BUDG-ADJ(#BB)
4876 ELSE
4878 ADD 1 TO #CC
4880 MOVE #H-BUDGET(#AA) TO #BUDGET-ARRAY(#CC)
4882 MOVE #H-FUND(#AA) TO #FUND-ARRAY(#CC)
4884 MOVE #H-OBJ(#AA) TO #OBJECT-ARRAY(#CC)
4886 ** MOVE #H-OBJ(#AA) TO #WORK-INCM.#CODE-BUDG-ADJ(#CC)
4888 MOVE #H-OBJ-CAT(#AA) TO #OBJ-CAT(#CC)
4890 ADD #H-OBJ-CAT-AMT(#AA) TO #OBJ-CAT-AMT(#CC)
4892 ** ADD #H-OBJ-CAT-AMT(#AA) TO #WORK-INCM.#AMNT-BUDG-ADJ(#CC)
4894 END-IF
4896 ELSE
4898 ESCAPE BOTTOM
4900 END-IF
4902 END-FOR


Thank you in advance.

Re: Mainframe vs Windows - Errors

PostPosted: Mon Apr 27, 2015 11:11 am
by RGZbrog
You know the program's syntax is correct, because it STOWed. The bug is in the colorization routine, whose logic is not as comprehensive as the compiler.

You can fix the coloring by removing the FOR keyword from the EXAMINE statement, but the EXAMINE won't read as well.