Skip to content

A Whitespace interpreter implemented in Clojure

License

Notifications You must be signed in to change notification settings

jmesyou/erasure

Repository files navigation

erasure: A Whitespace Interpreter

erasure is a Whitespace interpreter and runtime which can also produce an intermediate code representation in Clojure.

This interpreter was built for the term project of COMPSCI 4TB3 at McMaster University

Installation

Dependencies

Build from Source

Install Leiningen

From project root:

$ lein compile
$ lein uberjar

Standalone Jar

Download from https://github.com/JacksYou/erasure/blob/master/target/uberjar/erasure-1.0-standalone.jar.

Usage

$ java -jar erasure-1.0-standalone.jar [options] file

Options

-i, --intermediate  Pretty print Clojure intermediate source generated by the parser
-h, --help

Examples

There are two sample programs located in resources. helloworld.ws is purely Whitespace source while count.c is a Whitespace program embedded into C source which mirrors functionality.

for example, to run count.c:

from standalone jar:

$ java -jar target/uberjar/erasure-1.0-standalone.jar resources/count.c

from lein:

$ lein repl
erasure.core=> (-main "resources/count.c")

License

Distributed under the MIT Public License

Releases

No releases published

Packages

No packages published