Skip to content

Latest commit

 

History

History
48 lines (34 loc) · 916 Bytes

README.md

File metadata and controls

48 lines (34 loc) · 916 Bytes

PiperScript

This project is an interpreter for the language PiperScript.

It is intented as a learning exercise based on the book Writing An Interpreter in Go. At the current state the intepreter is adapted from Go to Rust, with the goal of learning more about interpreters and Rust.

PiperScript looks something like this:

let foo: "hei"
let bar: fn(x):
    return x + "ok"
~

if bar == foo:
    print(bar)
else:
    print(foo)
~

let adder: fn(x):
    return fn(y): return x + y ~
~

let array: [2, 5, 6]
print(array[2])

let hash: {"mee", 5, "boo", 1}
print(hash["mee"])

let one: 1
print(hash["mee"] / 8 * (array[1] + one))

print(last(array))

push(array, 5)

Additonal documentation

See the following readme's for more technical docs: