This IBM i (aka iSeries, AS400) command provides for code modernisation by converting fixed-format RPG and RPGLE source code into fully free-form RPGLE source in a non-destructive manner.

Converts:
* H-Specs
* F-Specs
* D-Specs
* C-Specs
* P-Specs (Subprocedures)
* Key Lists
* Parameter Lists

**PLEASE REPORT ANY ISSUES YOU FIND**

NOTE: Requires V7R2M0 or higher.

Some Background:
This started out as a 'quick and dirty' program for my own needs, but it got a little out of hand! :) It's not an example of my best work, as it has grown organically over time, rather than having been built sytematically, so hopefully you'll forgive some of my coding faux-pas.

** If you find something that won't convert, or doesn't convert properly, please let me know, and I'll fix it for you and the benefit of everyone else. **

Other Projects:
iMenu - flexible menu system: https://sourceforge.net/projects/i-menu/

Features

  • Non-destructive conversion: The utility converts the source from one member to a new member (the original source is left untouched), converting, where possible, fixed-format code to free-form code.
  • Clearer, cleaner code: Free-form code (both new and existing) is indented to show nesting, and all opcodes are converted to a standard case format for consistency. Comments are tidied up and can be indented to follow the code indentation, making the code much easier on the eye.
  • Definition consolidation: All in-line field definitions are moved to 'D' specs. Duplicate definitions (which do not generate compiler errors when defined in fixed-format) are dropped to avoid confusion.
  • Consistent free-form definitions: File, constant and variable declarations are converted to their free-form equivalents (see caveats in documentation).
  • CMS-friendly: Converted lines retain their original change date and line markers in order to avoid flagging changes in CMSes that use such features to track changes.
  • Audit Report: An audit report is produced listing every source member processed by the utility, detailing the number of lines, the number of lines converted and a conversion ratio.
  • Mass conversion: The utility can be run for all members of a source file, enabling the mass conversion of legacy code to the latest free-form version.

Project Samples

Project Activity

See All Activity >

License

GNU General Public License version 3.0 (GPLv3)

Follow CVTRPGFREE

CVTRPGFREE Web Site

Other Useful Business Software
Our Free Plans just got better! | Auth0 Icon
Our Free Plans just got better! | Auth0

With up to 25k MAUs and unlimited Okta connections, our Free Plan lets you focus on what you do best—building great apps.

You asked, we delivered! Auth0 is excited to expand our Free and Paid plans to include more options so you can focus on building, deploying, and scaling applications without having to worry about your security. Auth0 now, thank yourself later.
Try free now
Rate This Project
Login To Rate This Project

User Ratings

★★★★★
★★★★
★★★
★★
8
0
0
0
1
ease 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 4 / 5
features 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 4 / 5
design 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 5 / 5
support 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 5 / 5

User Reviews

  • Very good work and for free too. Many thanks and congratulations. I'd looked for such a tool a very long time before. It is easy to install, but if someone has less idea about IBM i and it's structure of programms and commands a small instruction-guide could help.
  • Helpful beyond words. Thanks!
    1 user found this review helpful.
  • Someone else called this ambitious and I certainly agree. The utility works well and converts all common older RPG code to free format. It also handles some more obscure techniques. Received excellent support from the author when suggestions for future enhancements were given.
    1 user found this review helpful.
  • Nous avons fait une batterie de tests sur la v7 , sympa les callb et les movea Un petit cas qu'on a trouvé sur une conversion avant dzone1 S 1 C CALL ZONE1 C CALL 'PGM01' après // Prototypes Dcl-PR ZONE1 ExtPgm(ZONE1); End-PR; Dcl-PR PGM01 ExtPgm('PGM01'); End-PR; Dcl-S zone1 Char(1); // >>>>> Automatically removed by conversion //C CALL ZONE1 CallP ZONE1( ); // >>>>> Automatically removed by conversion //C CALL 'PGM01' CallP PGM01( ); A mon avis mettre non traduisible si on a une zone dans un call et pas un littéral sinon tous nos tests sont bons Merci et à plus Ps j'ai ouvert un ticket ...
    1 user found this review helpful.
    Reply from CVTRPGFREE
    Posted 2021-05-05
    Thank you for the positive review! :) A conditioned IF is not something I think I've ever encountered, hence why it doesn't convert properly. I'll take a look and see if I can improve it.
  • Congrats, nice software I really like it. Very helpfull . By the way, do you know of some RPG convert to RPGILE, i need to reactivate some old programs (early 2000). Regards José.
    1 user found this review helpful.
    Reply from CVTRPGFREE
    Posted 2020-09-16
    Hi José, You can use the CVTRPGSRC command, supplied by IBM, to convert RPGIII and RPG400 to RPGILE. Once converted to RPGILE, you can use CVTRPGFREE to make it free-format. Regards, Paul.
Read more reviews >

Additional Project Details

Operating Systems

IBM i

Intended Audience

Developers

Registered

2016-11-03