Skip to content

merkrafter/Merkompiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CII Best Practices GitHub release (latest SemVer) Style

Merkompiler

Merkompiler is a JavaSST compiler written in Java (and pieces of Kotlin) as a study project. It is not meant to be used in production, but rather as a template and inspiration for others that need to solve similar tasks. I also don't claim that this is the best or even a good implementation of a compiler.

Please note that Merkompiler is not able to output .class files. At this point, it can tokenize input files, parse them into an abstract syntax tree, and make it visible.

Getting started

These instructions will help you compiling and running Merkompiler on your system.

JavaSST description

JavaSST is a (pretty) small subset of Java's language features. A complete description for it can be found in this project's wiki pages.

Prerequisites

This program is developed under and tested with

  • Apache maven 3.6.0 (you'll only need that if you plan to test and build Merkompiler yourself)
  • Java 1.8

Building

In order to compile this project yourself, you simply need to run the following commands. If you just want to use it, skip to installing.

$ git clone https://github.com/merkrafter/Merkompiler.git
$ mvn package

Installing

Merkompiler comes as a standalone jar, hence you don't need to do anything other than building or downloading it from the github repository's releases tab.

Running

Merkompiler can be run with:

java -jar path/to/Merkompiler.jar

An overview over all available options of your version can be obtained with:

java -jar path/to/Merkompiler.jar --help

The --graphical argument outputs a .dot file that can be translated to a .png file via the command

dot -Tpng path/to/file.dot > output.png

Running the tests

Assuming you downloaded the sources via git clone or equivalent, you only have to run:

$ mvn test

Built with

Tests built with

Contributing

See Contributing file.

Versioning

This project uses Semantic Versioning.

License

This project is released under the MIT license.

Acknowledgements

This README was created from this template.

About

A JavaSST compiler written in Java as a study project

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published