Breathing life into
legacy applications

Short Cuts:


Contact Us
Source Platforms
Outsourcing Services
Modernisation Process
Downloads
Register For Next Seminar

 Search:

 Login:


Username:
Password:   
Forgot password?

Brochures and Reports:



Manual Vs Automatic Translations White Paper

Business Rule Extraction White Paper

ROI and Case Studies

Technical Brochure

       Home > Translation Toolkit > Help files > Change History

CHANGE HISTORY


Generated On 26/04/2001
2.0.0.0

GO [TO] . - ie a goto without procedure name. The procedure name is now taken from
Encountering unknown variables - better help / guidelines on whats going on
BUG reports within Delphi applications. Previously wrong comment format was applied
Lisp Warnings - should not be reported to cobolmining -
DECLARATIVE SECTION. Parsing improved
Report section - PAGE [LIMIT IS] 30 - previously LIMIT was treated as mandatory
SET specialName-variable TO ON / OFF statement parsed reproduced commented out
WRITE filename [AT END-OF-PAGE statements] - was failing parser
File Control - SELECT ... [[ORGANIZATION] [IS] SEQUENTION] ... ORGANIZATION was ...
FD entry ... RECORD IS VARYING IN SIZE FROM a TO b [DEPENDING ON c] ...
File Control Entry - Parser cleaned up w.r.t : RELATIVE [KEY] [IS] - previously KEY was mandatory ..
READ tablename NOT [AT] END ... the optional AT was treated compulsory
ALTER parag -1 TO [PROCEED TO ] proc-1 {parag -2 TO [PROCEED TO ] proc-2} ...
DIVIDE ... [END_DIVIDE] . END_DIVIDE missed out from reserved words
index variable definition : 01 var USAGE INDEX . -- previously not handled
I-O_CONTROL - improved parsing for MULTIPLE FILE TAPE CONTAINS
ZEROES - parser failed to handle - although ZERO and ZEROS are fine
TRUE and FALSE operatives were handled incorrectly
EVALUATE var WHEN [NOT] a THRU b ... was generating incorrect code ...
EVALUATE condition WHEN ... Previously only handled EVALUATE var WHEN ...
Arithmatic statements with multiple results - revisited and improved
END-STATEMENT statements may be treated as variable
Error processing COBOL reserved word 'QUOTE'
PERFORM routine VARYING var1 FROM ... parser fails where var1 is an array
88 var VALUES [ARE] x THRU [TO] y. ... The optionals were not being parsed
arrayed variable definition : record OF table (array-size) - array size was not handled
The introduction of additional MAIN SECTION often hides other problems ..
ACCEPT POSITION var RECORD ...
EXEC SQL DECLARE CURSOR c FOR SELECT ... 'for' is now optional
CICS - WRITEQ TS - rewrite option was not parsed correctly
COBOL RETURN statement (part of sort statement) - not handle yet
INITIALIZE statment parsed but not translated
parsing negative variables -- fails proper understanding
multiple OR (or AND) statements within a conditional produces untidy code.
System avoids equating numbers and strings on the left hand side of equation ...
WEB - pay for usage - printing system limited to 32k files !
WS definitions with multiple 01 entries - individual 01 entries need to be ...
DELPHI 'dfm' file - wrong name, wrong extention
When a program does not reference screens - ...
When a cobol program module does not utilize GO TO statements, then the additional ...
moving single long field to structures ... 'substring' placed in incorrect position
Embedded SQL - DECLARE cursorName CURSOR FOR selection, MFCOBOL allows ...
DECLARE cursorName CURSOR FOR selection - not generating code properly
Embedded SQL - Connect - generates un-compilable code
MARANT read record with KEPT LOCK . the 'KEPT' part was not parsed before - now
Microfocus (MARANT) accept variable AT XXYY with auto... - fails parsing
ENVIRONMENT DIVISION . declaration made optional
System goes into infinite loop when cannot handle a particular statement.
Embedded SQL - Open Statement USING :vars - was not being parsed
Embedded SQL - EXECUTE statement, although parsed, was not being regenerated
Embedded SQL - when translated the references to SQLCA classes are lost
DISPLAY "string" WITH NO ADVANCING - statement fails during parsing
Generated java code - constructors
Generation of XHTML files - Dealing with arrayed components - all the components ...
Generated 'label' components are often too small
PROCEDURE DIVISION must be followed by a section name, and cannot go directly to a statement. ...
Evaluation version does not generate any output (Problem introduced in version 1.0.1.0 ?)
Parsing fails on sample CTIme2 program !!
Java FDInc wrapper files -: executeUpdate(sqlca) incorrect. Should be 'executeUpdate()'
Arrayed fields in FD files require a 2nd table to be constructed and included in FDInc. (Mx_xxx) ...
Java classes revamped.
88 constants not printed out properly
Calling other programs in Java .e.g. program-Name.runProgram (...) ...
Equal sign '=' sometimes not padded correctly.
Edit fields / Label fields with elongated names when 'Generate HTML' flag is on...
DECIMAL POINT is COMMA is not handled properly
Resultsets - inccorrect names assigned to them - mix up between 'rs' and 'sql_rs'
END-COMPUTE fails parsing in COMPUTE .... END-COMPUTE statements
Error identifying variables of same name within the COPYFILES ...
Statement Separator - some compilers (SG-5000) uses ',' characters as well as '.' e.g. ....
Generating delphi report pages ... the code generator fails with SUM_VARS error
Null Frame name translated to panels with invalid name containing '.'
OPEN INPUT file1 , OUTPUT file2 -- previously the separating ',' could not be handled
STOP RUN RETURNING var1 -- RETURNING var1 previously not handled
Reducing Array Size - for performance/memory enhancements : Increases the dimentionality ...
COPY FILE REPLACING =="var1"== BY ==var2==. When the replacing variable is quoted ...
Translation of UNSTRING var1 DELIMITED by var2 INTO var3 ...
the generated XXX_Display and XXX_Update methods : XXX Sometimes contains invalid '.' character ...
Declaratives section definition fails
WHEN var1 THRU var2 STATEMENT - handling was disabled since version 0.9.9.x !
When no name is given to a visual component (typically panel), occasionally incorrect name is given ...
78 type variables always translated to have INTEGER data type.
COPY "file-name" - causes 'File not found' error message in Preperation phase.
Microfocus display statement : DISPLAY (row, col) variable previously not supported
Microfocus screen definition : REVERSE-VIDEO previously not supported.
Java - Target : JBuilder IDE - the import statement com.borland.jbcl.layout.* is placed in
EXEC SQL ... containing complex SQL Statements not handled.
INSPECT var1 REPLACING ALL var2 by var3, var4 BY var5 <<--- The 2nd replacing ...
INSPECT var1 REPLACING ALL var2 by var3 <<--- 'ALL' not handled.
variable definitions : BLANK WHEN ZEROS
maths equations regenerated incorrectly ...
Assigning array_size to variables - single dimensional arrays sometimes get missed out
88 type constants not defined in the WSInc class files
Generation of JBuilder Frames : jbInit method generated incorrectly.
MOVE FUNCTION CURRENT_DATE TO var1
Translation of COBOL STRING command, missing concatenation signs, e.g.
if ... then statement; always needs the brackets. ...
Hex strings converted incorrectly in Java to Ox"1234" instead of Ox1234
FDInc files - constructor sometimes is written in Uppercase.
Variable names starting with numeric characters valid in COBOL but not java
Incorrect parse of substring types : var1 ( 1:n)
parser : PERFORM routine UNITL condition END-PERFORM - the END-PERFORM fails parser
minus sign translated t0 '_' instead of '-' as of version 0.9.9.1
display date_variable1 ... code generation phase : fails
'PROGRAM' in CALL PROGRAM "abcd" fails parser.
Some problems handling screen variable definitions like: 03 LINE 5 COL 10 "theValue" .
Code Generator fails on READ var1 KEY var2 where var2 is compound index, i.e. ...
ALTERNATE KEY var1 FOR var2 var3 WITH DUPLICATES ... duplicates was not supported
File Control. Select .... ALTERNATE KEY var1 = var2 var3 ...
conditional statement involving zero's translated incorrectly
01 data field entries - eg : 01 var1 pic x(80). may cause problems in code generation phase.
Hex literals not handled by parser- e.g. parser fails on X"00"
STRING abcd DELIMITED BY SPACES - use of SPACES (instead of SPACE) cause parser to fail
CALL Class - cannot pass functions as variables - e.g.
referencing variables by 'field OF record' - where same 'field' name used in multiple records ...
88 Variables in COPY files - generated code misses the record name from the variable, e.g. ..
Calculation of field length (field-format) should not count the 'S' sign as 1 i.e. S9 is length 1 and not 2.
COPY files within copy files not handled properly.
COPY file1 . - if the file is not found - the filename is missing from the message (only directory is shown!)
COPY fileName REPLACING var1 BY var2. Multiple occurances of var1 on one line is not replaced!
COPY fileName REPLACING var1 BY var2 var3 BY var4 ... i.e. multiple replacements - not handled
COPY filename REPLACING var1 BY var2 (as opposed to ==VAR1== by ==Var2==) not handled
Clearing array variables (eg MOVE SPACES to var1) expects array to be 1 greater than size
CALL statements occationally translated incorrectly ...
Reports and Printer classes revisited
JBuilder Forms, the constructor contains a reference to 'super' but ...
Lexical Analyser - COBOL Routines starting with COPY- causes failure
Accessing the arrayed structures in a redefinition of arrays onto non-array class generates bad code.
ADD var1 var2 var3 ... GIVING result ... . Fails parsing
Arrayed variables do not require comma separators - eg A(1 2) as well as A(1,2) is valid
SELECT ... RECORD-KEY ... . The RECORD-KEY as one word is not supported
Numeric COBOL procedure names when called from PERFORM statements fail Code Generation.
COBOL : INPUT-OUTPUT Sections without FILE-SECTION or WORKING STORAGE Section fails parsing
PERFORM routine1 THRU routine2 - does not call all the intermediate methods
When a date structure contains other groups - conversion to dates is wong, e.g. ...
Comparison of Dates to integers causes problems
Data entry - HITACHI compilers :- following modification have been to enable parsing the COBOL code
I-O-CONTROL : APPLY FILE_SHARE ON variables. Statement processed but ignored.
DECLARATIVE SECTION .. USE AFTER STANDARD ERROR PROCEDURE ON "I-O" ...
OCCURS Depending ON - sometimes fails parsing
Java 1.1 - component.hide() method deprecated - now should use component.setVisible(false);
Translation to JBuilder Java - -- LineOutput -> incorrect case when added to the constraint
Brackets lost in some COMPUTATION statements. e.g. ...
READ var1 INTO array(1) and WRITE table1 FROM array(1) -- fails parsing
START var1 INVALID ... . i.e. where no key is defined. Fails parsing
START key GREATER THAN OR EQUAL TO var - fails parsing
Stand-alone Negative variables(rather than equations with negative variables) fail parsing ...
CONDITIONALS : Parser fails on handling complex conditions - e.g. (and solution) ...
Keeping original COBOL comments - needs to be turned off and on again before its working !
Parsing of Arrayed Variables with complex indexes failes - eg VAR1( VAR2 + 1)
cobol File Control: SELECT fd1 ASSIGN TO file1 file2 ... Only reference to first file is maintained
COBOL PROGRAM-iD : progname IS EXTERNAL / INITIAL / COMMON - info ignored ...
Parsing of certain combination of variables followed & statements eg : VAR1 OF VAR2 < 30 Fails.
Problem handling parsing variable types : VAR1 OF VAR2
Error PRICN-To-STRING - raised during parsing Data Division - discovered
spurious brackets inserted when converting fractions to strings
Problems on resolving 'redefinitions' ...
JAVA - MOVE decimal TO long .. generates invalid format ...
Multiple redefinition of integer or decimal fields, ...
Lexical Analyser - incorrect translation of signed decimals such as : +.3 or -.4
Translation of FD COPY files into FDInc Directories ..> readFiles and WriteFIelds statements...
WANG - as cobol platform, causes translations put display panels on top left of screen !!
Conversion of Strings to Floats (99v99) format
'PERFORM .. UNTIL' - Termination condition is missing
Translated Java Programs : Time variables incorrectly initialized to 'new ACMDate()'
Translated Java Programs : Date / Time variables incorrectly defined as 'String'
COBOL RELEASE Statement (part of sort statement) - not handled yet
Lexical Analyzer- Sometimes Crashes the CORECT !
Printer Files - a non-existant File name is initialized, and freed (and used in Uses)
String Statement - appends the string literals irrespective of DELIMITED clause ! A Comment is generated ...
COBOL SORT statements supported
LOW-VALUE / HIGH-VALUE as well as LOW-VALUES and HIGH-VALUES need to be treated ...
CONTINUE statement - is now translated to '; // continue;' rather than ignored
PERFORM parag1 3 times - An additional variable is used in translation but not declared ...
Parser - handling mathematical equations of type number / variable fails in complex statements
Interinsic Functions eg FUNCTION ACOS , (trigonometric functions)
In the 'Target Data Schema' Page - clicking on an Index will only show the first field of the index.
Multi-01 FDs - Main Key is not currently duplicated in all 01 entries ... (it Should)
Java/Delphi - FDInclude files - parameter wrong case used when setting 'tableName'
Java Forms - form elements need not be declared as public - a default declaration is preferable ...
Java Forms - LineOutput declared twice !! ...
Java Forms - constructors need to call 'super()'
CORECT Preprocessor - 'Prepare Page' - if selected multiple items, where one or more of ...
Generated FDInc files - read/writeFields for arrays - For loop UNTIL condition is one too few
Java Generated FDInc files - WriteFIelds method; field-numbers start at 2 instead of 1 !
Java FDInc files - rs.prepare() missing before OPENing a result set
COBOL - READ .. AT END end-statements, The 'end-statements' is missing in the translation
Java programs - utilizig 'lineOutput' - appendText needs a final '\n'
MOVE date-variable TO String-variable - eg
MF COBOL- SCREEN SECTION - when not COPIED - system translates the screens into terminalOutput
Exit (0) / Leave / Return ... confused in Stop Run, EXIT Section, Exit Perform ...
Processing multiple Programs - when only one uses SCREEN SECTION copy files - fails during Code Generation
Lexical Analyser - PIC X(9) is translated to PIC " X(9)" (field-length 12) instead of PIC "X(9)"
DELPHI library - ACMQuery class revisited - minor bugs removed
MF COBOL -> SCREEN SECTION - when in copy file - the system fails to pick up the Update fields
FDInc Object wrappres - where delete method is generated - it lacks Execute for the SQL
Delphi - FDInc - Object wrappers - ReadFields/WriteFields -paramByName wrong
DELPHI - FDInc Object wrappers - Methods WriteFields, ReadFields, delete ... need to be OVERRIDE
SQL DDL generation - When the database specified in Setup page is not MS-Access - Generates error
Delphi-Java Panel Column widths in range of 3000-5000 instead of 400-700 units
DELPHI - COBOL Call statement translated to TFRM_program.RunProgram ...
COBOL programs with SECTIONS - translation fails by call ALL the subsequent sections
Catering for goto handling thru P_Continue - if (P_Continue == true) doNextProcedure - after EXIT
EVALUATE WHEN TRUE --- true is translated to 1 instead of 'true' in java or Delphi
88 variables eg 88 ws-terminte .. values "y" ... "Y"
Records with no fields (occurs during translation of multi 01- fields) - should not be displayed ...
Java FDInc files - setInteger("abcd" , "abcd") is should be setInteger(FieldNum , "Abcd");
Generation of Java forms for files with '_' characters -
Translation of COBOL CALL statement with no parameters -Java/Delphi - RunProgram (this
FDWrapper - java module ReadFields / writeFields methods wrong format
DELPHI - For loop variables must be local to the procedure
VAX COBOL - Can declare information normally on 'SELECT ASSIGN' with the FD section.
COPY 'abcd' - with no file extension, whilst the actual copy file is 'ABCD.ws'
call statements containing data-groups (copy files) is translated with every field in the call ....
Lexical Analyzer - 0xff characters inside a Quoted string is treated as EOF character !!
COBOL - ACCEPT variable FROM DAY - type statements has been reworked
FD files generate multiple Schema Entries - some of which is invariably empty (Bug introduced in 0.9.5.2)
Preprocessor : COMPUTE a = (.85 ...) -> translted to COMPUTE a = { \. 85
Lexical Analyser - translates some invisible characters to '\\'
"Copy Files Not Found" Due to conversion of "-" to "_" character in filenames w
MFCOBOL -> $SET ... Statments should be removed or commented out from code.
COBOL -EVALUATION true WHEN CONDITION - improved to cater for larger set of conditions
Parser - Conditional Statementsfailed on the following type of condition : A and B not = SPACES
COBOL variables of type : Field OF Record - problems introduced in version 0.9.4 - corrected
Problem with Spurios '\\' characters generated within the Lexical analyser corrected
COBOL Double QUOTES character representing quote mark within the literal - not properly handled
Lexical Analyser - Problems with continuation lines sorted.
Project / Works directory lost in File|Setup|Directories after restart of application
Saving processed/analysed FD's on multi-dimentional FD's - the Field-class data not saved !
Saved Parsed / Analysed FD Descriptions - somtimes uploading the saved definitions fails
conditional : if (A + B) = C ... parse fails , ((A + B) = C) successful
Preprocessor - COMPUTE a = b /c -- Space required after '/'
Comments between FD record .... and the end-statement '.' cause parser to fail
88 variable VALUES 5, 10 THRU 20 - OR ... 5 thru 10 thru 1234 ...
Translation of multi-dim FD's -- too many record generated
CORECT UI - Processing page - 'Start' Button not visible under some NT/95 boxes !!!
Swapping target language from Java to Delphi in same session causes the name ...
COBOL Data Fields with same names - the analyser assumes the incorrect field
Linkage Items defined internally (not using COPY files) are printed with a 'T.' prefix !!
COBOL Data Fields with same name - in WS section not renamed (those in FD are handled)
Generated Programs - Java - Wrong no. of brackets in Multi-dim Array definitions
Java String comparisons - use compareTo instead of == or >, etc
Generated Programs : Delphi / Java - function HideAllPanels not properly terminated
Generated Programs - Matching group fields to strings ...
Generated programs - Delphi - programs with no screens - methods have wrong classnames
Generated Programs - Delphi - RunProgram method - when no form is involved the variable
Generated Programs - Delphi - files in WSInc directory - class definition should not end in ';'
Generated Programs- Delphi - files in WSInc directory - file names are incorrectly prefixed with 'T'
Delphi Code Generator - forward declaration of 'RunProgram' in generated programs ...
Parser - fails on COBOL CALL statements
FDInc - wrapper files - OpenUsing methods generated incorrectly
Multi-dimentional data containing REDEFINES - create ambiguous definitions
Progress Indicator for parser now based on number of lines instead of '.' ...
Parser fails on conditional statements containing ' NOT >'
Parser fails on multi-conditionals involving arrayed variables
Children of CACMArrayedQuery - Problems
SQL Wrapper files in FDInc :: too many fullstops on line rs..executeUpdate(SQL); + Others ...
DELPHI - Software Mining Edit, etc ; onExit method don't work !!!!
Cobol Calls / RUN / PRograms with no screens / Forms still put FRM_ ...
MOVE zeros/spaces TO array_group-1.
IBM COBOL - write xyz after POSITIONING abc . -- parser failse after POSITIONING - Position treated as SKIP
COBOL Arithmatic operations of type - ADD 10 TO X , Y - is parsed incorrectly
IBM COBOL - EXAMINE statement is now handled as INSPECT
COBOL numerical Procedure names not supported.
JAVA - breaking the iteration cycle translates to RETURN instead of BREAK
JAVA Migration - if ... then ... else { ...} , - only the first statement in ELSE statements printed !!
PERFORM UNTIL EXIT - iteration lost in translation
Java - "lstScreen" removed. New Information is now displayed using "System.out.println"
JAVA - string equality test - use (String1.equals(String2)) instead of (String1 == String2)
COBOL -> JAVA - COBOL exit statement is now translated to exit (0) instead of return();
COBOL long Strings with more than one continuation lines cause Preprocessor to fail
Already processed Data files in repository no longer utilized -
Prepare File - Cannot Create Output File - Error -- Directory Containing '-' cha
Help files not viewable on default installation setting !
JAVA - Conversion of COBOL arrayed variables - occurs n times -> array of [n + 1]
COBOL 'Quotes' reserved word - eg VALUE QUOTES not handled properly
COBOL equality statements eg IF A GREATER THAN B - Parser fails when 'THAN' missing
COBOL variable definition : var1 PICTURE IS ... . The 'IS' parameter causes parser fail
Java/Delphi - Translation of Cobol Comment Strings - erronous ';' after character
Full stop character after column 72 (or user specified End Column for COBOL files) causes parser to fail
MicroFocus COMP-5 variables - eg ... PIC X(n) COMP-5 translated to integer of n (32 Bit) bytes
Java / Delphi generated programs - Program Flow logic statement Missing
COBOL: 01 var1 VALUE SPACES -> JAVA : ... new String(SPACE);
COBOL variable names can start with Numbers - illigal in Java/Delphi
lstScreen..setText("") ; - when attempting to clear the list box
'Generate WS Include Files' function not working ! -
Edit boxes in the Translated Screen - names converted to "edt_varName" instead o
TARGET-LANGUAGE must be user definable -
Variable names begining with digits - not allowed in Delphi or Java
CANCEL ALL - statement not parsed
Java / Delphi generated programs - Wrong Names issued for PANELS.
COBOL Author Line : AUTHOR . A . B .Smith . - the additional full-stops causes parser to fail
DELPHI - Constructor calls have wrong format !!
No of Items representing the Linkage items generated for RunProgram construct is
All generated RDB records have indexes that contain all fields of original record !!
Precompiler Cobol statements begining with '$' should be handled
COPY filename REPLACING xxx WITH yyyy
COBOL COPY statement in the PROCEDURE DIVISION
COBOL TYPEDEF statements
Translation of Screens - All screen items positioned on the same line !
DELPHI : Procedure names cannot start with numerical values (0-9)
Modifiying the 'Assumed Length' of a variable - the information is not saved in the Mods file
DB Objects: Multiple FD records - Indexes of the 1st record applied to 2nd rec

GO [TO] . - ie a goto without procedure name. The procedure name is now taken from

Encountering unknown variables - better help / guidelines on whats going on

BUG reports within Delphi applications. Previously wrong comment format was applied

Lisp Warnings - should not be reported to cobolmining -

DECLARATIVE SECTION. Parsing improved

Report section - PAGE [LIMIT IS] 30 - previously LIMIT was treated as mandatory

SET specialName-variable TO ON / OFF statement parsed reproduced commented out

WRITE filename [AT END-OF-PAGE statements] - was failing parser

File Control - SELECT ... [[ORGANIZATION] [IS] SEQUENTION] ... ORGANIZATION was ...

FD entry ... RECORD IS VARYING IN SIZE FROM a TO b [DEPENDING ON c] ...

File Control Entry - Parser cleaned up w.r.t : RELATIVE [KEY] [IS] - previously KEY was mandatory ..

READ tablename NOT [AT] END ... the optional AT was treated compulsory

ALTER parag -1 TO [PROCEED TO ] proc-1 {parag -2 TO [PROCEED TO ] proc-2} ...
The multiple parags were not previously handled.

DIVIDE ... [END_DIVIDE] . END_DIVIDE missed out from reserved words

index variable definition : 01 var USAGE INDEX . -- previously not handled

I-O_CONTROL - improved parsing for MULTIPLE FILE TAPE CONTAINS

ZEROES - parser failed to handle - although ZERO and ZEROS are fine

TRUE and FALSE operatives were handled incorrectly

EVALUATE var WHEN [NOT] a THRU b ... was generating incorrect code ...
e.g
EVALUATE 12
WHEN 10 THRU 15
...
produces :
if (15 <= 12) && (10 >= 12){
return;
}
instead of
if
(15 >= 12) && (10 <= 12){
return;
}

EVALUATE condition WHEN ... Previously only handled EVALUATE var WHEN ...

Arithmatic statements with multiple results - revisited and improved

END-STATEMENT statements may be treated as variable
eg.
SUBTRACT var1 333333
NOT ON SIZE ERROR
MOVE "1" TO var2
END_SUBTRACT
In the above the final move contains END_SUBTRACT i.e.

Error processing COBOL reserved word 'QUOTE'

PERFORM routine VARYING var1 FROM ... parser fails where var1 is an array

88 var VALUES [ARE] x THRU [TO] y. ... The optionals were not being parsed

arrayed variable definition : record OF table (array-size) - array size was not handled

The introduction of additional MAIN SECTION often hides other problems ..
and the system will go into an indifinite loop.

ACCEPT POSITION var RECORD ...

EXEC SQL DECLARE CURSOR c FOR SELECT ... 'for' is now optional

CICS - WRITEQ TS - rewrite option was not parsed correctly

COBOL RETURN statement (part of sort statement) - not handle yet

INITIALIZE statment parsed but not translated

parsing negative variables -- fails proper understanding
e.g. compute abcd = -x

multiple OR (or AND) statements within a conditional produces untidy code.

System avoids equating numbers and strings on the left hand side of equation ...
e.g.
MOVE 12 to 13

WEB - pay for usage - printing system limited to 32k files !

WS definitions with multiple 01 entries - individual 01 entries need to be ...

DELPHI 'dfm' file - wrong name, wrong extention
The name of the generated files is:
TFrmExample.txt
instead of
Example.dfm

When a program does not reference screens - ...
then the system should avoid even generating a blank CFrm_ProgramName.java.
Java compilation will throw a wobbely when it tries to compile these.

When a cobol program module does not utilize GO TO statements, then the additional ...

moving single long field to structures ... 'substring' placed in incorrect position
see program PRD_CALL - regeneratd program section 'C000_Get_Total'
we get things like
Product2.Prod_Price = new Double((Ws_Temp / 100).substring(29 , 35 ) );
but now we get :
Product2.Prod_Price = new Double( ACMUtil.strToDouble (Ws_Temp.substring(29 , 35 )) / 100 );

Embedded SQL - DECLARE cursorName CURSOR FOR selection, MFCOBOL allows ...

DECLARE cursorName CURSOR FOR selection - not generating code properly

Embedded SQL - Connect - generates un-compilable code

MARANT read record with KEPT LOCK . the 'KEPT' part was not parsed before - now

Microfocus (MARANT) accept variable AT XXYY with auto... - fails parsing

ENVIRONMENT DIVISION . declaration made optional

System goes into infinite loop when cannot handle a particular statement.

Embedded SQL - Open Statement USING :vars - was not being parsed

Embedded SQL - EXECUTE statement, although parsed, was not being regenerated

Embedded SQL - when translated the references to SQLCA classes are lost

DISPLAY "string" WITH NO ADVANCING - statement fails during parsing

Generated java code - constructors

Generation of XHTML files - Dealing with arrayed components - all the components ...

Generated 'label' components are often too small

PROCEDURE DIVISION must be followed by a section name, and cannot go directly to a statement. ...
Invalid
   PROCEDURE DIVISION.
   MOVE 12 to var1.
valid
   PROCEDURE DIVISION.
   00-MAIN-ROUTINE.

Evaluation version does not generate any output (Problem introduced in version 1.0.1.0 ?)

Parsing fails on sample CTIme2 program !!

Java FDInc wrapper files -: executeUpdate(sqlca) incorrect. Should be 'executeUpdate()'

Arrayed fields in FD files require a 2nd table to be constructed and included in FDInc. (Mx_xxx) ...

Java classes revamped.

88 constants not printed out properly

Calling other programs in Java .e.g. program-Name.runProgram (...) ...

Equal sign '=' sometimes not padded correctly.
Check

Edit fields / Label fields with elongated names when 'Generate HTML' flag is on...
Some names are generated incorrectly - e.g.
Pnl_Main_Screen_Edt_Name;
instead of
Edt_Name

DECIMAL POINT is COMMA is not handled properly

Resultsets - inccorrect names assigned to them - mix up between 'rs' and 'sql_rs'

END-COMPUTE fails parsing in COMPUTE .... END-COMPUTE statements

Error identifying variables of same name within the COPYFILES ...
E.g. COPYFILE 1 contains variable FILLER
and in the main program we have
WORKING-STORAGE SECTION.
01 abc.
05 FILLER abcd pic X.
Then the FILLER is given the name of the ID in COPYFILE1 !

Statement Separator - some compilers (SG-5000) uses ',' characters as well as '.' e.g. ....
MOVE a TO b ,
MOVE c TO d ,

Generating delphi report pages ... the code generator fails with SUM_VARS error

Null Frame name translated to panels with invalid name containing '.'

OPEN INPUT file1 , OUTPUT file2 -- previously the separating ',' could not be handled

STOP RUN RETURNING var1 -- RETURNING var1 previously not handled

Reducing Array Size - for performance/memory enhancements : Increases the dimentionality ...
of the variable.
For example :
05 a \.
10 b PIC "X(60)" OCCURS 10 TIMES \.

COPY FILE REPLACING =="var1"== BY ==var2==. When the replacing variable is quoted ...

Translation of UNSTRING var1 DELIMITED by var2 INTO var3 ...
was previously tranlated to
var3 = ACMDelemiter (var1 , var2 , 1) =;
   The method ACMDelemiter was not present.
The above COBOL statement is now translated into :

the generated XXX_Display and XXX_Update methods : XXX Sometimes contains invalid '.' character ...
This occurs when the XXX needs to be autogenrated :- then it is taken from the generated OID of the program.
When the OID contains '.' character - eg. Program1.CBL_D1 - then the associated names will be invalid.

Declaratives section definition fails

WHEN var1 THRU var2 STATEMENT - handling was disabled since version 0.9.9.x !

When no name is given to a visual component (typically panel), occasionally incorrect name is given ...
E.g. the file name is "abc.cbl".
Then when we have a screen group - which will be translated to a Panel, then the system will automatically assign a name to the panel. This name is generated based on an internal ID which is typically like 'ABC.CBL_P1'
.The '.' in the Panel name will cause problems in Java and Delphi.
This '.' to be translated to '_'

78 type variables always translated to have INTEGER data type.

COPY "file-name" - causes 'File not found' error message in Preperation phase.
The name of file is converted to file_name, and hence system cannot find the file 'file-name'.

Microfocus display statement : DISPLAY (row, col) variable previously not supported

Microfocus screen definition : REVERSE-VIDEO previously not supported.

Java - Target : JBuilder IDE - the import statement com.borland.jbcl.layout.* is placed in

EXEC SQL ... containing complex SQL Statements not handled.

INSPECT var1 REPLACING ALL var2 by var3, var4 BY var5 <<--- The 2nd replacing ...

INSPECT var1 REPLACING ALL var2 by var3 <<--- 'ALL' not handled.

variable definitions : BLANK WHEN ZEROS

maths equations regenerated incorrectly ...
eg.add a , b giving c
results in
c = + b;
+ a

Assigning array_size to variables - single dimensional arrays sometimes get missed out
For example the array size is missing on variables a3, and a4
01 aa \.
02 a2 \.
03 aa2 occurs 3 times \.
04 a3 picture "xxx" \.
04 a4 picture "xxx" \.
But this works
01 aa \.
02 a2 occurs 2 times \.
03 aa2 occurs 3 times \.
04 a3 picture "xxx" \.
04 a4 picture "xxx" \.

88 type constants not defined in the WSInc class files

Generation of JBuilder Frames : jbInit method generated incorrectly.
The method is generated as:
   public void jbInit() throw_Numbers Exception {
instead of
   public void jbInit() throws Exception {

MOVE FUNCTION CURRENT_DATE TO var1

Translation of COBOL STRING command, missing concatenation signs, e.g.
e.g. STRING var1, var2 delimited by space into VAR3
gives    VAR3 = var1 var2
instead of
   VAR3 = var1 + var2

if ... then statement; always needs the brackets. ...
Some single statements may be translated to multiple-statements. e.g. open abcd with LOCK, will be translated to
abcd.setLock(true);
abcd.OpenSequential;

Hex strings converted incorrectly in Java to Ox"1234" instead of Ox1234

FDInc files - constructor sometimes is written in Uppercase.

Variable names starting with numeric characters valid in COBOL but not java

Incorrect parse of substring types : var1 ( 1:n)

parser : PERFORM routine UNITL condition END-PERFORM - the END-PERFORM fails parser

minus sign translated t0 '_' instead of '-' as of version 0.9.9.1

display date_variable1 ... code generation phase : fails

'PROGRAM' in CALL PROGRAM "abcd" fails parser.

Some problems handling screen variable definitions like: 03 LINE 5 COL 10 "theValue" .

Code Generator fails on READ var1 KEY var2 where var2 is compound index, i.e. ...
eg SELECT record1 ...

alternate key is va2 = var4 var8
...
Read records1 KEY var2

ALTERNATE KEY var1 FOR var2 var3 WITH DUPLICATES ... duplicates was not supported

File Control. Select .... ALTERNATE KEY var1 = var2 var3 ...

conditional statement involving zero's translated incorrectly
eg
   if a < b then ...
is translated correctly to
   if (a < b) { ...
but
   if (zero < b) ,...
is translated to

01 data field entries - eg : 01 var1 pic x(80). may cause problems in code generation phase.

Hex literals not handled by parser- e.g. parser fails on X"00"

STRING abcd DELIMITED BY SPACES - use of SPACES (instead of SPACE) cause parser to fail

CALL Class - cannot pass functions as variables - e.g.
CALL "ABCD" USING xyz BY
VALUE LENGTH OF mno \.

referencing variables by 'field OF record' - where same 'field' name used in multiple records ...

88 Variables in COPY files - generated code misses the record name from the variable, e.g. ..
eg.
Copy FILE1. ...

03 yes-no pic x(1).
88 yes value "Y".
88 no value "N".

main program

if var1 is YES ...

is translated to

if var1.equals( yes )

instead of

if var1.equals( file1.yes )

..

Calculation of field length (field-format) should not count the 'S' sign as 1 i.e. S9 is length 1 and not 2.

COPY files within copy files not handled properly.

COPY file1 . - if the file is not found - the filename is missing from the message (only directory is shown!)

COPY fileName REPLACING var1 BY var2. Multiple occurances of var1 on one line is not replaced!

COPY fileName REPLACING var1 BY var2 var3 BY var4 ... i.e. multiple replacements - not handled

COPY filename REPLACING var1 BY var2 (as opposed to ==VAR1== by ==Var2==) not handled

Clearing array variables (eg MOVE SPACES to var1) expects array to be 1 greater than size
When trying to clear the array eg
   MOVE spaces to x
we get
for (int I1 = 0 ;I1 <= 2 ; I1++)
X[I1] = "";

CALL statements occationally translated incorrectly ...
eg CALL abc USING xyz
where abc is defined also as a variable - this was being translated to
   abc , xyz);
instead of
   CAbc.RunProgram(xyz);

Reports and Printer classes revisited

JBuilder Forms, the constructor contains a reference to 'super' but ...

Lexical Analyser - COBOL Routines starting with COPY- causes failure
eg.

PROCEDURE DIVISION.
COPY-ABCD SECTION.
...

THe system assumes it is dealing with a copy file ie it treats the statement as :

Accessing the arrayed structures in a redefinition of arrays onto non-array class generates bad code.
e.g. as in file samples\redef\redef8b.cbl
where we have
FD dfile8.
01 thefile .
03 g1.
05 a1 pic 9999 .
05 d1 pic 9.
05 a2 pic 9999 .
05 d2 pic 9.
05 a3 pic 9999 .
05 d3 pic 9.
05 a4 pic 9999 .
05 d4 pic 9.
05 a5 pic 9999 .
05 d5 pic 9.
03 c pic 999.
03 G11 REDEFINES G1 OCCURS 5 TIMES.
05 int1 PIC 9(4)v9.

then accessing
   int(3)
was yeilding
a1[3]
d1[3]
a2[3]
d2[3]
a3[3]
d3[3]
a4[3]
d4[3]
a5[3]
d5[3]
instead of
   a3 and d3

ADD var1 var2 var3 ... GIVING result ... . Fails parsing

Arrayed variables do not require comma separators - eg A(1 2) as well as A(1,2) is valid

SELECT ... RECORD-KEY ... . The RECORD-KEY as one word is not supported

Numeric COBOL procedure names when called from PERFORM statements fail Code Generation.

COBOL : INPUT-OUTPUT Sections without FILE-SECTION or WORKING STORAGE Section fails parsing

PERFORM routine1 THRU routine2 - does not call all the intermediate methods

When a date structure contains other groups - conversion to dates is wong, e.g. ...
For example:
03 W-DATE.
05 W-YM.
07 W-YY PIC 9(02).
07 W-MM PIC 9(02).
05 W-DD PIC 9(02).
The above is translated incorrectly.

Comparison of Dates to integers causes problems
e.g.
   IF W-DATE NOT > INT-GROUP1

Data entry - HITACHI compilers :- following modification have been to enable parsing the COBOL code
WINDOW SECTION. Treat the same as SCREEN SECTION in MF COBOL
INPUT/OUTPUT/I_O LINE Sames as MFCOBOL to/from/using
Letter extend is XXX parse but ignore
RULE LINE IS xxx parse but ignore
variable REPEAT n TIMES treat the same as vairable OCCURS n TIMES
Statements :

I-O-CONTROL : APPLY FILE_SHARE ON variables. Statement processed but ignored.

DECLARATIVE SECTION .. USE AFTER STANDARD ERROR PROCEDURE ON "I-O" ...

OCCURS Depending ON - sometimes fails parsing

Java 1.1 - component.hide() method deprecated - now should use component.setVisible(false);
Similarily -

disable() - setEnabled(false)
enable() - setEnabled(true)
show() - setVisible(true)

Translation to JBuilder Java - -- LineOutput -> incorrect case when added to the constraint

Brackets lost in some COMPUTATION statements. e.g. ...
e.g
   COMPUTE A = ( B + C) ;
was translated to
   A = B + C;

READ var1 INTO array(1) and WRITE table1 FROM array(1) -- fails parsing

START var1 INVALID ... . i.e. where no key is defined. Fails parsing

START key GREATER THAN OR EQUAL TO var - fails parsing

Stand-alone Negative variables(rather than equations with negative variables) fail parsing ...
e.g.
   if (- var1) > 0 then ...
would fail, but
   COMPUTE var1 = var2 - va3
would pass.

CONDITIONALS : Parser fails on handling complex conditions - e.g. (and solution) ...
For example :
   if function ord (10) + function ord (2) = 11 then ...
fails the parser.
rewrite as:
   var1 = function ord (10) + function ord (2)

Keeping original COBOL comments - needs to be turned off and on again before its working !

Parsing of Arrayed Variables with complex indexes failes - eg VAR1( VAR2 + 1)

cobol File Control: SELECT fd1 ASSIGN TO file1 file2 ... Only reference to first file is maintained

COBOL PROGRAM-iD : progname IS EXTERNAL / INITIAL / COMMON - info ignored ...
The external / Initial/ Common information parsed and ignored

Parsing of certain combination of variables followed & statements eg : VAR1 OF VAR2 < 30 Fails.

Problem handling parsing variable types : VAR1 OF VAR2

Error PRICN-To-STRING - raised during parsing Data Division - discovered

spurious brackets inserted when converting fractions to strings

Problems on resolving 'redefinitions' ...
01 TEST.

03 a PICTURE "-9.9(17)" .
03 B REDEFINES a .
04 b1 PICTURE "-9(18)" .
04 b2 PICTURE "X" .
In the above example attempts to reference variable a will point to variable b1, whereas attempt to reference variable 'B' will correctly generate a reference to

JAVA - MOVE decimal TO long .. generates invalid format ...
eg
   MOVE decimalVar TO longVar
generates:
   logVar = (decimalVar , nn);

Multiple redefinition of integer or decimal fields, ...
eg :
03 decimal1 pic 9(5).9(5)
03 dicimal2 pic 9(4).9(6) redefines decimal1.

The above caused the system to report a problem that the

'Multiple definitions provided for a field'

Now the system checks if the field lengths are the same, then it just takes the first

Lexical Analyser - incorrect translation of signed decimals such as : +.3 or -.4

Translation of FD COPY files into FDInc Directories ..> readFiles and WriteFIelds statements...
.. contain reference to an instance name - which does not exists. eg for a Company_Info files CCompany_Info
the read method would reference
   Company_Info.Company_Name = ....;
instead of

WANG - as cobol platform, causes translations put display panels on top left of screen !!

Conversion of Strings to Floats (99v99) format
eg:

03 dec1 pic 99v99
03 str1 pic x(4) value "1234"
...
MOVE str1 to dec1

The system was translating the above move statement to :

dec1 = strToFloat(dec1);

this is incorrect as dec1 would become 1234.
Now system translates to

dec1 = strToFloat(dec1 / 100.

'PERFORM .. UNTIL' - Termination condition is missing

Translated Java Programs : Time variables incorrectly initialized to 'new ACMDate()'

Translated Java Programs : Date / Time variables incorrectly defined as 'String'

COBOL RELEASE Statement (part of sort statement) - not handled yet

Lexical Analyzer- Sometimes Crashes the CORECT !
Programs using quotes such as in
   STRING ABCD "\" EFTG into FILENAME
Crashes the sytem.

Printer Files - a non-existant File name is initialized, and freed (and used in Uses)

String Statement - appends the string literals irrespective of DELIMITED clause ! A Comment is generated ...
notifying the user ... eg..
// Software Mining - Please Check the following.
// COBOL String Command - delimited by : SIZE
s2 = "this is a string literal " + string2r;

COBOL SORT statements supported

LOW-VALUE / HIGH-VALUE as well as LOW-VALUES and HIGH-VALUES need to be treated ...

CONTINUE statement - is now translated to '; // continue;' rather than ignored
Although ignoring the statement is logically true - it makes the generated program more difficault to compare with the original! The biggest confusion was caused by statements such as:
   if a = a then continue.
The system ignores IF statements with no statements in THEN and ELSE parts. Continue was being ignored and hence the above statment was missing from the translation.
Now the following is generated ...
   if (a == a) ; // continue

PERFORM parag1 3 times - An additional variable is used in translation but not declared ...
eg this is translated to

for (Lv_Perform_A = 1; Lv_Perform_A < 2;
Lv_Perform_A++ ) parag1 (false) ;

but the lv_perform_A variable is not declared : ie the following is missing from any procedure/function which uses this type of performs

Parser - handling mathematical equations of type number / variable fails in complex statements

Interinsic Functions eg FUNCTION ACOS , (trigonometric functions)
Handled functions ...
COS ACOS SIN ASIN TAN ATAN
As well as other non trigonometry functions :

In the 'Target Data Schema' Page - clicking on an Index will only show the first field of the index.

Multi-01 FDs - Main Key is not currently duplicated in all 01 entries ... (it Should)
eg see clients\company.cpy - where we have ::
fd company.
01 company-pf.

03 key1.
05 co-rec-type pic 9.
05 co-id pic 999.
03 next-id-group.
05 co-next-id pic 999.
03 filler pic X(170).

01 company-info.

03 filler pic x(7).
03 key2.
05 company-name pic x(20).
05 company-id redefines company-name pic x(20).
...

In the generated SQL DDL Structure for 'company-info' - there should be an entry for both

co-rec-type
co-id

Currently there isn't.
Furthermore - the following fields should be linked to each other - so setting one whould set the other
   Company_info.Co_Rec_Type and Company_Pf.Co_Rec_Type
as well as
   Company_info.Co_id and Company_Pf.Co_id

Java/Delphi - FDInclude files - parameter wrong case used when setting 'tableName'

Java Forms - form elements need not be declared as public - a default declaration is preferable ...
eg
   public TextArea lineOutput;
instead of

Java Forms - LineOutput declared twice !! ...
In the CFrmProgram.java the lineOutput is redeclared in the line
    TextArea lineOutput = new TextArea();
instead of

Java Forms - constructors need to call 'super()'

CORECT Preprocessor - 'Prepare Page' - if selected multiple items, where one or more of ...

Generated FDInc files - read/writeFields for arrays - For loop UNTIL condition is one too few
eg for an array size of 4 we get
    for (i = 0; i < 4 ; i++) ..
instead for
    (i = 0; i < 5 ; i++) ..

Java Generated FDInc files - WriteFIelds method; field-numbers start at 2 instead of 1 !

Java FDInc files - rs.prepare() missing before OPENing a result set

COBOL - READ .. AT END end-statements, The 'end-statements' is missing in the translation

Java programs - utilizig 'lineOutput' - appendText needs a final '\n'

MOVE date-variable TO String-variable - eg
05 date1 .

10 yy pic xx.
10 mm pic xx.
10 dd pic xx.
05 date2 .

ACCEPT date2 from Date
MOVE date2 to date1.
generates:

yy = ACMDay( date2 );
mm = ACMMOnth (date2);
dd = ACMYear (date2).

ie the Year and date fields are mixed up.

MF COBOL- SCREEN SECTION - when not COPIED - system translates the screens into terminalOutput

Exit (0) / Leave / Return ... confused in Stop Run, EXIT Section, Exit Perform ...

Processing multiple Programs - when only one uses SCREEN SECTION copy files - fails during Code Generation

Lexical Analyser - PIC X(9) is translated to PIC " X(9)" (field-length 12) instead of PIC "X(9)"

DELPHI library - ACMQuery class revisited - minor bugs removed

MF COBOL -> SCREEN SECTION - when in copy file - the system fails to pick up the Update fields

FDInc Object wrappres - where delete method is generated - it lacks Execute for the SQL

Delphi - FDInc - Object wrappers - ReadFields/WriteFields -paramByName wrong
The statements are generally of the type :
   q.FieldByName('Company_Pf.Co_Rec_Type').AsInteger := Co_Rec_Type;
instead of
   q.FieldByName(Co_Rec_Type').AsInteger := Co_Rec_Type;
Similarily the ReadFields methods are of thpe
   Co_Rec_Type := q.FieldByName('Company_Pf.Co_Rec_Type').AsInteger;
instead of
   Co_Rec_Type := q.FieldByName('Co_Rec_Type').AsInteger;

DELPHI - FDInc Object wrappers - Methods WriteFields, ReadFields, delete ... need to be OVERRIDE

SQL DDL generation - When the database specified in Setup page is not MS-Access - Generates error

Delphi-Java Panel Column widths in range of 3000-5000 instead of 400-700 units

DELPHI - COBOL Call statement translated to TFRM_program.RunProgram ...

COBOL programs with SECTIONS - translation fails by call ALL the subsequent sections
eg

SECTION1 SECTION.
sec11 .
statements
sec11-exit.
exit.
SECTION2.
sect22.
...

is translated to

private void SECTION1 () {
sec11 ();
sec11-exit();
sec12 ();
...
}

instead of

private void SECTION1 () {
sec11 ();
sec11-exit();
}

Catering for goto handling thru P_Continue - if (P_Continue == true) doNextProcedure - after EXIT
the folowing generates java compiler error :
private void procedure1 () {
   return ()
   if (P_Continue == true) doNextProcedure();
}
the compiler error 'Procedure Not Reached' is generated.
Solution:
The system check to see if the last statement is return - then the

EVALUATE WHEN TRUE --- true is translated to 1 instead of 'true' in java or Delphi

88 variables eg 88 ws-terminte .. values "y" ... "Y"
this is translated to
   if (ws-termiated == "y" && ws-termated = "Y")
instead of

Records with no fields (occurs during translation of multi 01- fields) - should not be displayed ...

Java FDInc files - setInteger("abcd" , "abcd") is should be setInteger(FieldNum , "Abcd");

Generation of Java forms for files with '_' characters -
eg prog-a is generated as CFrmProg_a instead of CFrmProg_A
But then inside the program we get
   public class CFrmProg_A ...

Translation of COBOL CALL statement with no parameters -Java/Delphi - RunProgram (this
Will generate
   RunProgram (this
instead of

FDWrapper - java module ReadFields / writeFields methods wrong format

DELPHI - For loop variables must be local to the procedure
For-Loop Operations. Delphi insists that the loop variable used must be local to the procedure and not a field within any objects of any kind. Hence, in
Procedure Tform1.proc1
beginfor xxx := 1 to n do:.
End;
variable xxx has to be defined in the procedure. Ie
Procedure Tform1.proc1
var yyy : Integer;
beginfor yyy := 1 to n do begin
   xxx := yyy ;
end;
End;

VAX COBOL - Can declare information normally on 'SELECT ASSIGN' with the FD section.

COPY 'abcd' - with no file extension, whilst the actual copy file is 'ABCD.ws'

call statements containing data-groups (copy files) is translated with every field in the call ....statement instead of passing the CLASS instance as parameter.

Lexical Analyzer - 0xff characters inside a Quoted string is treated as EOF character !!

COBOL - ACCEPT variable FROM DAY - type statements has been reworked

FD files generate multiple Schema Entries - some of which is invariably empty (Bug introduced in 0.9.5.2)

Preprocessor : COMPUTE a = (.85 ...) -> translted to COMPUTE a = { \. 85

Lexical Analyser - translates some invisible characters to '\\'

"Copy Files Not Found" Due to conversion of "-" to "_" character in filenames w
Many target languages do not allow "-" characters in variable names. Hence all "-" character are converted to "_" character. This is causing a problem with file/directory name. For example,
   COPY "data-dir\file-1.cbl"
but the actual file is now converted to will be converted to
   "file_1.cbl"
but then the system cannot find the directory or the the file as they do not exist.Currently users must manually modify the file name / directory name of the COBOL programs so they do not contain "-" characters.

MFCOBOL -> $SET ... Statments should be removed or commented out from code.
These can have no effect on the target code.

COBOL -EVALUATION true WHEN CONDITION - improved to cater for larger set of conditions

Parser - Conditional Statementsfailed on the following type of condition : A and B not = SPACES

COBOL variables of type : Field OF Record - problems introduced in version 0.9.4 - corrected
Also fixed parser to cope with :

Problem with Spurios '\\' characters generated within the Lexical analyser corrected

COBOL Double QUOTES character representing quote mark within the literal - not properly handled

Lexical Analyser - Problems with continuation lines sorted.

Project / Works directory lost in File|Setup|Directories after restart of application

Saving processed/analysed FD's on multi-dimentional FD's - the Field-class data not saved !

Saved Parsed / Analysed FD Descriptions - somtimes uploading the saved definitions fails

conditional : if (A + B) = C ... parse fails , ((A + B) = C) successful

Preprocessor - COMPUTE a = b /c -- Space required after '/'

Comments between FD record .... and the end-statement '.' cause parser to fail
eg.
FD record
* This is a comment line
block contains 180 records .

88 variable VALUES 5, 10 THRU 20 - OR ... 5 thru 10 thru 1234 ...
The system can handle
88 variable values 5 , 19 , 29 .
or
88 variable values 9 thru 100.
but not the combination, ie the following will NOT be handled
88 variable values 5 , 19 , 29 , 90 THRU 100.
The system will fail during Parsing phase.

Translation of multi-dim FD's -- too many record generated
eg:

FD record1.
01 a .

02 a1 pic 99.
02 B occurs 3 times.
03 b1 pic 99.
03 b2 pic 99.
03 c .
04 c1 pic 99.

This should be translated to 2 records - 'A' and 'B'

CORECT UI - Processing page - 'Start' Button not visible under some NT/95 boxes !!!

Swapping target language from Java to Delphi in same session causes the name ...

COBOL Data Fields with same names - the analyser assumes the incorrect field
eg
01 rr2 \.

02 gg12 pic "99" \.
02 gg13 \.
03 f1 pic "99" \.
02 gg14 \.
03 f1 pic "99" \.
...
move 10 to f1 of gg14 \.
move 10 to f1 of gg13 \.

The system will fail to catch the correct 'F1' in the first statement, and in the 2nd statement the F1 found will refer to gg14 - ie the wrong entry.

Linkage Items defined internally (not using COPY files) are printed with a 'T.' prefix !!
eg when the following is defined internally to a program
Linkage section.
01 all-vars .
03 a pic 99.
'a' is translated to as 'T.a'

COBOL Data Fields with same name - in WS section not renamed (those in FD are handled)

Generated Programs - Java - Wrong no. of brackets in Multi-dim Array definitions
eg for a 2 dim array the system wrongly prints
   int a[] = new int [2][4];
instead of

Java String comparisons - use compareTo instead of == or >, etc

Generated Programs : Delphi / Java - function HideAllPanels not properly terminated
The function is inserted in all programs with screen items.
Also the function is inserted in the programs which have no screens/requirement for it.

Generated Programs - Matching group fields to strings ...
eg

03 abc .
05 a pic 9.
05 b pic 9.

Then the following works :
MOVE "0" to a gets translated to
a = strToInt('0');
But
MOVE "0" to abc
gets translated to

a = '0';
b = '0';

instead of

a = strToInt('0');
b = strToInt('0');

Generated programs - Delphi - programs with no screens - methods have wrong classnames

Generated Programs - Delphi - RunProgram method - when no form is involved the variable

Generated Programs - Delphi - files in WSInc directory - class definition should not end in ';'

Generated Programs- Delphi - files in WSInc directory - file names are incorrectly prefixed with 'T'

Delphi Code Generator - forward declaration of 'RunProgram' in generated programs ...

Parser - fails on COBOL CALL statements

FDInc - wrapper files - OpenUsing methods generated incorrectly

Multi-dimentional data containing REDEFINES - create ambiguous definitions

Progress Indicator for parser now based on number of lines instead of '.' ...

Parser fails on conditional statements containing ' NOT >'

Parser fails on multi-conditionals involving arrayed variables

Children of CACMArrayedQuery - Problems
Following problems were found and corrected

- rs.setString("Company_Info.Comp_Address[Li_1]" , Company_Info.Comp_Address[Li_1] );
the first parameter to setString should not contain array information
- for (Li_1 = 1 ; 3 ; Li_1++) { {
additional braces and for condition incorrect
- rs..executeUpdate(SQL);
- xyzRecord.Readfields () ;
the Readfields wrong case readFields ();

SQL Wrapper files in FDInc :: too many fullstops on line rs..executeUpdate(SQL); + Others ...
Also wrong number of tabs on that line
+ tmp_Update.add('UPDATE mx_company_info SET'); <<- use of single quotes --> Fixed
   + private void readFields () // and writeFields()
int Li_1 = 0;

public CACMQuery Mx_Company_Info = new CACMQuery ();
{ << -- wrong place for braces
+ openUsing_Company_Info is written out twice - fixed
+ in writeFields () we have
   Rs.SQL := tmp_Select; <<-- wrong equate sign -- DONE
+ delete () has the following - fixed
   Nil.addSQL("DELETE FROM MX_COMPANY_INFO WHERE Mx = :Mx");

DELPHI - Software Mining Edit, etc ; onExit method don't work !!!!

Cobol Calls / RUN / PRograms with no screens / Forms still put FRM_ ...

MOVE zeros/spaces TO array_group-1.
Where group-1 contains many fields, only the first field will be
equated to 0/spaces.
eg 03 a occurs 9 times pic 99.
move zeros to a ;

IBM COBOL - write xyz after POSITIONING abc . -- parser failse after POSITIONING - Position treated as SKIP

COBOL Arithmatic operations of type - ADD 10 TO X , Y - is parsed incorrectly

IBM COBOL - EXAMINE statement is now handled as INSPECT

COBOL numerical Procedure names not supported.


eg :
01 .MOVE x TO y
or
02 Section.

JAVA - breaking the iteration cycle translates to RETURN instead of BREAK

JAVA Migration - if ... then ... else { ...} , - only the first statement in ELSE statements printed !!

PERFORM UNTIL EXIT - iteration lost in translation

Java - "lstScreen" removed. New Information is now displayed using "System.out.println"
lstScreen required to be placed inside a panel (to enable its peer) before information can be written to it. Without this panel the system was generating null pointer errors. The information is now written to System.out.println.

JAVA - string equality test - use (String1.equals(String2)) instead of (String1 == String2)

COBOL -> JAVA - COBOL exit statement is now translated to exit (0) instead of return();

COBOL long Strings with more than one continuation lines cause Preprocessor to fail

Already processed Data files in repository no longer utilized -

Prepare File - Cannot Create Output File - Error -- Directory Containing '-' cha
When output DIRECTORY contains '-' character , the character is converted to '_' and hence the directory is no longer found!.

Help files not viewable on default installation setting !

JAVA - Conversion of COBOL arrayed variables - occurs n times -> array of [n + 1]
eg
   03 var 1 pic 99 occurs 10 times .
is translated to

COBOL 'Quotes' reserved word - eg VALUE QUOTES not handled properly

COBOL equality statements eg IF A GREATER THAN B - Parser fails when 'THAN' missing

COBOL variable definition : var1 PICTURE IS ... . The 'IS' parameter causes parser fail

Java/Delphi - Translation of Cobol Comment Strings - erronous ';' after character

Full stop character after column 72 (or user specified End Column for COBOL files) causes parser to fail

MicroFocus COMP-5 variables - eg ... PIC X(n) COMP-5 translated to integer of n (32 Bit) bytes

Java / Delphi generated programs - Program Flow logic statement Missing
Missing.
- eg

first_method (P_continue) {
....
// the following type of statement is missing from all generated programs

if (p_continue == true) next_Method (p_continue);
}

COBOL: 01 var1 VALUE SPACES -> JAVA : ... new String(SPACE);
01 var1 pic x(10) VALUE SPACES
is translated into
String var1 = new String (SPACE);
instead of
String var1 = new String("");

COBOL variable names can start with Numbers - illigal in Java/Delphi

lstScreen..setText("") ; - when attempting to clear the list box

'Generate WS Include Files' function not working ! -

Edit boxes in the Translated Screen - names converted to "edt_varName" instead o

TARGET-LANGUAGE must be user definable -

Variable names begining with digits - not allowed in Delphi or Java

CANCEL ALL - statement not parsed

Java / Delphi generated programs - Wrong Names issued for PANELS.


In an
   ACCEPT field1 at 10 20
where
   03 field1 pic x(20)
type statment, 3 things will be generated

-var declaration : String field1;
-edit box : TextEdit field1_box;
-panel: Panel field1;

there are conflicts between field1 as String and field1 as Panel

COBOL Author Line : AUTHOR . A . B .Smith . - the additional full-stops causes parser to fail

DELPHI - Constructor calls have wrong format !!
eg
   ABCD := ();
TABCD ();
instead

No of Items representing the Linkage items generated for RunProgram construct is

All generated RDB records have indexes that contain all fields of original record !!

Precompiler Cobol statements begining with '$' should be handled

COPY filename REPLACING xxx WITH yyyy
CORECT cannot handle this statement. The file must manually be copied and modified. Note that often this type of statment is used for changing field descriptions to globals, e.g.
   :COPY "fd1.cpy"
     REPLACING ==RRECORD1== BY
     ==RECORD1 IS GLOBAL== .
In such situations you can safely Commnet out the replacing lines, as all variables within a COBOL module are accessible to the whole module. NOTE IF YOU DO COMMENT OUT THE REPLACING SECTION IN THE ABOVE EXAMPLE, YOU WILL NEED TO PUT A STATEMENT TERMINATOR (ie '.') AT THE END OF THE LINE
   'copy "fd1.cpy".

COBOL COPY statement in the PROCEDURE DIVISION
This is currently not handled. The copy files will often have to be manually copied into the program - or where possible the COPY statement replaced by a CALL statement - with the relevant variables passed into the COPY file as input parameters. Note that here you will have to alter the copy file slightly and turn it into a COBOL program by including the IDentification , Environment and Procedure Division.
Note that this approach also helps in trapping and removal of unwanted Declarative Sections (see Limiteations | COBOL Declarative Section)

COBOL TYPEDEF statements

Translation of Screens - All screen items positioned on the same line !

DELPHI : Procedure names cannot start with numerical values (0-9)

Modifiying the 'Assumed Length' of a variable - the information is not saved in the Mods file

DB Objects: Multiple FD records - Indexes of the 1st record applied to 2nd rec


  For further information please contact sales@softwaremining.com



 

  © 2008 , SoftwareMining. All Rights Reserved.

- http://www.softwaremining.com