Jail++ (Rail compiler)
The Jail Constructions ltd. proudly presents you our newest product: Jail++, a Rail to Java ByteCode compiler in C++.
Hey! What's Rail?
Esolang-Wiki: Esoteric 2D computer language
Who are we
The Jail Constructions ltd. are a group of 15 computer science students from the Freie Universität Berlin in Germany. During the summer term 2014, we developed a compiler that translates Rail code into JVM Bytecode. In addition, we programmed an Integrated Development Environment (IDE) for Rail coders. It simplifies the process of writing rails and offers features like undo/redo, rail rotation and mirroring, individually configurable syntax highlighting, compiler integration, I/O text areas and many more.
- implementation of all available Rail commands
- data types
- stack operations
- pipeline interfaces
- AST Serialisation
- IDE for Rail with syntax highlighting
Building the compiler
Building the IDE
This project was developed for Linux (Ubuntu 14.04) and has not been tested on any other operating systems.
- no Libs STL only
- std=C++11 TODO
- Building the compiler
We recommend you to use Eclipse to build the compiler. In tutorials/eclipseCdt_Cpp11.txt you will find a step-by-step guide to configure the project correctly.
- Compiler usage
cppRail (-i|-d) <srcFile> [-s <dstFile>] [-g <dstFile>] [-h]
- -i compiles to .class
- -o compiles source to
- -s serializes the ASG to csv
- -d deserializes and compiles to .class
- -g generates a graphviz .dot file as ASG-Visualisation
- -q quiet mode (Warnings, Errors, Exceptions only)
- -h Commandline Help
You can either user -i or -d, not both
- Building the IDE
You will need Qt to build the Rail IDE. Check tutorials/Qt5Tutorial.txt to install Qt5 from bottom up.
Additionally, you should install the Qt Creator to run the IDE (see tutorials/EditorTutorial.txt for a step-by-step guide).
The usage of the IDE should be very intuitive, so just check out the available menu options.
- Contribution Guide
Contribution in any form is (currently) limited to students that are involved.