/smeup-rpg

Primary LanguageKotlinApache License 2.0Apache-2.0

smeup-rpg

License Build Status CircleCI codebeat badge

This project contains an interpreter for the RPG programming language. This interpreter runs on the JVM since it's written in Kotlin.

Development

All information for developers is contained in the Development guide.

Logging

The project supports configurable logging, described in a separate document.

RPG Unit tests: the MUTE mechanism

We support special annotations to be used to write unit tests in RPG. For details see this document.

How the repository is organized

  • generated-src contains the code generated from the grammar
  • gradle, gradlew, and gradlew.bat contain the gradle wrapper
  • src contains the source code for the project and the tests
  • out, and build contain temporary files
  • misc contains utilities for downloading sources from AS400 (for example this ruby script)
  • misc/docker: support for Docker, see instructions
  • docs contains documentation

How to use this code in your project

At the moment, we use Jitpack to publish the project.

If you use Maven, add these lines to your pom.xml in order to add the repository

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>

Then add the following dependencies for the core library:

<dependency>
    <groupId>com.github.smeup.smeup-rpg</groupId>
    <artifactId>rpgJavaInterpreter-core</artifactId>
    <version>-SNAPSHOT</version>
</dependency>

And this if you want to include the examples too:

<dependency>
    <groupId>com.github.smeup.smeup-rpg</groupId>
    <artifactId>examples</artifactId>
    <version>-SNAPSHOT</version>
</dependency>

Here is a sample project that uses the interpreter as a library.

Side note for maven users who use mirrors: remember to change your .m2/settings.xml with settings like this:

<mirrors>
    <mirror>
        <id>myNexus</id>
        <mirrorOf>!jitpack.io,*</mirrorOf>

Credits

The grammar used in this project is based on the work from Ryan Eberly. It is derived from his project rpgleparser.

Some RPG Examples are from Claudio Neroni

Another source for good examples is go4as400