RPython port of mio-lang
Python Makefile
Latest commit 0ef829a Dec 14, 2015 James Mills Added more trove classifiers
Permalink
Failed to load latest commit information.
bin
docs
examples
mio
tests
.coveragerc
.gitignore
.travis.yml
Dockerfile
Makefile
README.rst
TODO.md
requirements.txt
setup.py

README.rst

Minimal I/O Interpreter

Build Status Coverage Quality

This is a minimal I/O Interpreter. This is a rewrite of:

Warning

mio is a new programming language in early Development.

DO NOT USE IN PRODUCTION!

USE AT YOUR OWN RISK!

Prerequisites

It is recommended that you do all development using a Python Virtual Environment using virtualenv and/or using the nice virtualenvwrapper.

$ mkvirtualenv mio

Installation

Grab the source from https://github.com/mio-lang/mio and either run python setup.py develop or pip install -e .

$ git clone https://github.com/mio-lang/mio.git
$ cd mio
$ pip install -e .

You can also download the Latest Release

Building

To build the interpreter simply run mio/main.py against the RPython Compiler. There is a Makefile that has a default target for building and translating the interpreter.

$ make

You can also use Docker to build the interpreter:

$ docker build -t mio .

Usage

You can either run the interpreter using Python itself or by running the compiled interpreter mio in ./bin/mio.

$ ./bin/mio examples/hello.mio

Untranslated running on top of Python (CPython):

$ mio examples/hello.mio

Grammar

The grammar of mio is currently as follows:

program = expressions

expressions = { expression }

expression = message | terminator

message = symbol | arguments | symbol arguments

arguments = T_LPAREN arguments_list T_RPAREN |
            T_LBRACE arguments_list T_RBRACE |
            T_LBRACKET arguments_list T_RBRACKET

arguments_list = expressions | expressions T_COMMA arguments_list

symbol = T_IDENTIFIER | T_OPERATOR | T_NUMBER | T_STRING

terminator = T_TERMINATOR