Why buy a commercial parser?

In some cases there are open-source parsers available, so why consider buying a commercial parser?

Depending on your situation, you may need a parser that has been thoroughly tested, which is documented and having someone to call in case you encounter any problem.

That’s why we create and distribute a commercial off the shelves RPG parser.
We built an industrial-grade parser for RPG that can be used for multiple languages. It is based on our PolyParser approach.
At the moment we support Java, Kotlin, and Python through native libraries. We plan to build native libraries in many more languages and if you want us to support a new language we would be happy to hear it.

You can buy a parser ready for the integration, without any technical complexity and easy to integrate. A ready to go RPG parser. 

Four reasons to buy:

Parser Bench and Warranty

Try it before buy it to discover all features using our tool “ParserBench”. We offer a 1-year warranty.

Perpetual License

We provide a perpetual, royalty-free license, permitting commercial usage and distribution.

Easy integration without complexity

All technical aspects are covered by us. We provide support, documentation and best practices.

Multi-language approach

The parser cover all the main programming language, such as SAS, PL/SQL, Cobol, RPG and more.

How I can learn more?

We suggest you to fill this questionnaire so we can better understand your use case and arrive well prepared.

RPG is a language that has been used extensively for decades.
Nowadays billions of lines composing extremely valuable software are defined in RPG.

There are several operations you may want to perform on your RPG code:

  • Transpiling that code to another language such as Java or C#. This may be useful to migrate to modern platforms, to benefit from the rich ecosystems of new languages, or to simplify finding developers to maintain your applications, as RPG developers become harder to find

  • Write an interpreter for that language, as we did in the Jariko project. This is an alternative to execute your RPG code on another platform. With this approach, we have also obtained the possibility of combining Java and RPG code in a common system

  • Create a new compiler for the language, again another way to migrate to another platform

  • Build an editor with error checking and auto-completion. This may be useful to provide better tools for your RPG developers

  • Analyze the code to ensure best practices are respected. As RPG has been used to create extremely valuable systems, in charge of core activities, it makes sense to verify the code respects all the internal rules defined in your organization

  • Automatically refactor code. When dealing with a large codebase, there are occasions in which automatic transformations of code is the only way to perform changes at scale, without the risk of incurring in human errors

How to use a parser to build these applications?

You may want to build these applications processing RPG code specifically for your needs, considering the specificities of your codebase. By acquiring this complete RPG parser you can focus right away on building your specific code-processing logic.

These applications could be built by your team. If you need it we can offer design support, training, and coaching. Or you can work with us or with any third party you choose to work with.

Now, you may build each of these applications in multiple languages. For example, you want to build your transpiler in Python, and maybe your editor in TypeScript.

Here is the reason why we decide to build our industrial-grade parser for RPG that can be used for multiple languages. Based on our PolyParser approach, at the moment we support Java, Kotlin, and Python through native libraries and more to come. You can use PolyParser also with languages for which we do not yet provide native libraries as it can output JSON and XML files so that you can build your code processing tool in any language you like.

What does it matter in a parser?

We have built tens of parsers for our clients, wrote books and created video courses, wrote hundreds of articles and given presentations on multiple continents and we have learned some things which are important in a parser, to support what our clients want to build with them.

Our parsers provide an Abstract Syntax Tree (AST), not a Parse Tree. This may sound like some academic term just thrown out to appear smart. It is not. The difference is that the output of our parsers is more high-level and easier to work with and we think this could be relevant to you as well.

We provide AST libraries to process the output of our parsers. They permit you to work with the tree more easily to accomplish your goals. We know that as we have built interpreters, editors, compilers, transpilers, and other tools using those libraries, so we built them as tools we needed to use in our work.

Error recovery: our parsers can deal with errors in code and recover, to build an AST. This is important for applications that need to process also incorrect code. This is always the case for editors, for example, as the user is constantly writing code and until they are finished the code is typically incorrect.

Parser Bench

Parser Bench is the place where you can evaluate online the parsers that we build. You can choose among a number of open-source examples source files and look at the output of the parser for that file – an AST (Abstract Syntax Tree) representing the logical structure of the input file (and not just the grammatical decomposition of the source into keywords, identifiers, punctuation and other elements).
We distribute all the parsers that we showcase here as libraries that you can use natively in Java, JavaScript, Python, and any other language, thanks to support for interoperable formats such as EMF/ECore.

Frequently Asked Questions

Under which conditions do you offer the parser?

We provide a permanent, very permissive commercial license. You will get the source code, tests, build scripts, documentation. You will get the right to modify the parser, if you want, and redistribute it as part of your applications.
This parser is sold for a one-time investment. Included with it you will also get 6 months of support. During the support period, we will fix any possible bug you will encounter, for free. After the 6 months period, we will be able to provide more support, if you wish. If not you will be able to use the parser forever, without any further expense.

How can I evaluate it?

We created a web application specifically to let you test the parser. You will have the possibility to navigate a list of pre-defined examples and see the corresponding AST produced. The web application will render the AST and let you navigate it, so that you can more easily familiarize yourself with the AST produced.
The application is called ParserBench. You can navigate a set of examples and examine the output the parser produces for those examples.
You can find it at https://parserbench.strumenta.com/

Anything else you could help me with?

Typically our clients buy a parser to use as part of larger systems. Sometimes they have all the internal skills they need to integrate the parser into their systems, in some other cases, they ask us for training courses, support with the architectural design, or the implementation of the entire system. We are specialists in Language Engineering and we can offer all these supporting services, to ensure you reach your goals.

How I can learn more?

We suggest you to fill this questionnaire so we can better understand your use case and arrive well prepared.