/albino

Whitespace compiler, assembler and interpreter written in Rust.

Primary LanguageRustMIT LicenseMIT

Albino

Build Status

This is a compiler front-end for the esoteric languages (Whitespace, Brainfuck, Ook!, DT) which is build as part of the Whitebase compiler infrastructure project.

This tools and Whitebase are written in Rust.

Features

  • The interpreter for Whitespace, Brainfuck, Ook! and DT.
  • The compiler and decompiler for these.
  • The assembly language for Whitespace.

Quick Start

cargo build
target/albino run examples/hello.ws

Usage

Run script

You can run the script directly. Type albino run command.

albino run hello.ws

albino can detect file type using extention, but you could specify any other.

albino run -s dt hello.ws

Compile and execute

albino compiles the source code to Whitebase bytecode, and it can be executed directly without parsing later.

albino build -o hello.bc hello.ws
albino exec hello.bc

Tend to be larger than the original source code to byte code. It is a strange thing.

Disassemble bytecodes

Whitespace's source code is beautiful, but you might be tempted to disassemble due to unavoidable circumstances. albino provides the human readable assembly language that equivalent to the byte code.

albino gen -o hello.asm hello.bc

Convert to Whitespace

Ook! is orangutan-friendly language, but not secure because can be read by even the orangutan.

First, compile Ook!'s code to bytecode, and then decompile to Whitespace, print it out at the end. albino is very useful for spies.

albino build hello.ook | albino gen -o hello.ws

License

This project distributed under the MIT License. http://opensource.org/licenses/MIT