Difference between revisions of "Free Form Definitions"

From MidrangeWiki
Jump to: navigation, search
(Links)
(Fully Free-Form coding)
Line 51: Line 51:
 
Another one of the new features of ILE RPG, introduced as of 7.1 TR 11 and 7.2 TR 3, is a fully free-form coding format.  The program source must start with **FREE and this removes all of the prior column restrictions for RPG source.
 
Another one of the new features of ILE RPG, introduced as of 7.1 TR 11 and 7.2 TR 3, is a fully free-form coding format.  The program source must start with **FREE and this removes all of the prior column restrictions for RPG source.
 
* Fixed-form specifications cannot be used in the main program source.
 
* Fixed-form specifications cannot be used in the main program source.
* Fixed-form copybooks can still be used—the compiler automatically inserts **NO-FREE and **FREE around them.
+
* Fixed-form copybooks can still be used—the SQL precompiler, at least, automatically inserts **END-FREE and **FREE around them.
 
* Column 6 and 7 are no longer reserved for fixed-form specification characters, compiler directives, or comments.
 
* Column 6 and 7 are no longer reserved for fixed-form specification characters, compiler directives, or comments.
 
* All free-form statements, compiler directives, and comments may start in column 1.
 
* All free-form statements, compiler directives, and comments may start in column 1.

Revision as of 20:48, 27 December 2018

One of the major new features of ILE RPG, introduced in 7.1, is free form definition specifications.

This article is a stub. You can help by editing it.


Features

  • Removes the column restrictions on definitions.
  • Can be interspersed with standard, fixed form, definitions.
  • /free and /end-free no longer required.

Requirements

  • IBM i 7.1 or higher.
  • 7.1 PTF 5770WDS SI51094.
  • If using SQLRPGLE, 7.1 PTF Group SF99701 level 26 or higher.

Free-Form Definitions

The following are the new free-form definition statements to take the place of the indicated fixed-format specifications.

CTL-OPT  . . equates to H-specs
DCL-F  . . . equates to F-specs
DCL-C  . . . equates to D-spec constants
DCL-S  . . . equates to D-spec stand-alone fields
DCL-DS . . . equates to D-spec data structures
END-DS . . . to terminate most DCL-DS statements
DCL-PI . . . equates to D-spec procedure interface definitions
END-PI . . . to terminate procedure interface definitions
DCL-PR . . . equates to D-spec procedure prototype definitions
END-PR . . . to terminate procedure prototype definitions
DCL-PROC . . equates to P-spec begin statements
END-PROC . . equates to P-spec end statements

Examples

<source lang="rpg">

    D* fixed-form declarations
    D string        S       50A VARYING 
    D date          S         D DATFMT(*MDY) 
    D obj           S         O CLASS(*JAVA:'MyClass') 
    D ptr           S         * PROCPTR 
   
      // free-form declarations 
      DCL-S string VARCHAR(50); 
      DCL-S date DATE(*MDY); 
      DCL-S obj OBJECT(*JAVA:'MyClass'); 
      DCL-S ptr POINTER(*PROC);
    
      // constants
      DCL-C max_count 200; 
      DCL-C deleted 'D'; 

</source >

Fully Free-Form coding

Another one of the new features of ILE RPG, introduced as of 7.1 TR 11 and 7.2 TR 3, is a fully free-form coding format. The program source must start with **FREE and this removes all of the prior column restrictions for RPG source.

  • Fixed-form specifications cannot be used in the main program source.
  • Fixed-form copybooks can still be used—the SQL precompiler, at least, automatically inserts **END-FREE and **FREE around them.
  • Column 6 and 7 are no longer reserved for fixed-form specification characters, compiler directives, or comments.
  • All free-form statements, compiler directives, and comments may start in column 1.
  • All comments must start with slash-slash, instead of an asterisk, and can be used practically anywhere/anytime.
  • Column 80 is no longer the restricted right margin for statement content.
  • The entire source line length may be used for statement content—no reserved comment area.
  • Source line lengths greater than 100 characters are automatically supported.

Links

Dawn May: Free format RPG and TR7

RPG Cafe: Fully free-form RPG

IBM Knowledge Center: Free-Form Statements