RPython port of mio-lang
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
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