Currently the compiler will generate GNU assembler code.


With the aid of GNU assembler and linker, a executable binary can be 
created to run on a i386 Linux platform.


The compiler will only work if the COBOL source code is in free form format. 
A conversion utility to convert fixed to free form COBOL source code is 
included in all sources.


The current released snapshot has support for the following features and/or 
COBOL syntax.

- ACCEPT, DISPLAY (including stdin, stderr, stdout).
- ACCEPT, DISPLAY.
  Line I/O (stdin, stderr, stdout).
  Screen I/O (non COBOL 85 standard extension).
  at LINE ... POSITION ... (non COBOL 85 standard extension).
- CALL (including dynamic load).
  BY REFERENCE. 
  BY VALUE. 
  BY CONTENT.
  RETURNING variable (non COBOL 85 standard extension).
- CURRENCY SIGN, DECIMAL-POINT. 
- Debugging facility using GDB (not fully functional).
- EVALUATE. 
- File I/O.
  Includes OPEN, CLOSE, DELETE, READ, WRITE, REWRITE, START.
  Variable record length file IO (preliminary).
- Floating point types (USAGE IS [ FLOAT-LONG | COMP-2 | FLOAT-SHORT | COMP-1 ]).
- GO TO, GO TO ... DEPENDING ON.
- IF/ELSE conditional statements (all options are implemented).
- INITIALIZE. 
- INSPECT (not all options are implemented).
- Integrated COBOL pre-processor.
  Supports free and fixed syntax formats.
  Supports all COPY statements including the REPLACING clause.
  The REPLACE statements are not implemented.
- Linux extensions (return code, command line, environmental variables).
- Math verbs (including [NOT] ON SIZE ERROR options).
  ADD (including CORRESPONDING option). 
  COMPUTE (+ - * / ** operators implemented). 
  DIVIDE.
  MULTIPLY. 
  SUBTRACT (including CORRESPONDING option). 
- MOVE. 
- Nested and sequence of source programs (preliminary).
- Multi dimensional arrays and tables.
  Variable size arrays and tables (preliminary).
- NEXT SENTENCE, CONTINUE (does not conform to COBOL 85 standard).
- PERFORM (all options implemented).
- POINTER types (USAGE IS POINTER). 
- Reference Modification.
- Scope terminators for COBOL 85 (END-IF .... END-PERFORM).
- Sequence of source programs.
- SET.
- STRING (not all options are implemented).
- SORT, RELEASE, RETURN. 
  USING and GIVING clauses only work on sequential  files. 
  The sort work file is kept in memory and not written to disk.
- SEARCH.
- SEARCH ALL.
- SELECT ... ASSIGN (not all options are implemented).
  Supports non-standard external file name assignment in SELECT and FD statements.
- Static variables.
- TRACE, READY/RESET (not functional).
- UNSTRING (not all options are implemented).
- Variable length (1, 2, 4, 8) support for BINARY, COMP fields.


The following features and/or COBOL syntax are currently under development.

- CORRESPONDING options in the MOVE, ADD, SUBTRACT statements (preliminary). 

- EXTERNAL semantics (preliminary).

- Intrinsic Functions (preliminary).
 
- The REPORT SECTION (preliminary).

- Variable record length file IO (preliminary).

- Variable size arrays (preliminary).



Currently has no support for the following features and/or COBOL syntax:

- A SQL pre-processor.
- Any portion of the COMMUNICATION SECTION.
- Any portion of the PROCEDURE DIVISION DECLARATIVES.
- Non native IA32 types (big-endian).
- Support for 33 digit precision for temporary variables in RTS.
