oakc 0.6.1

A portable programming language with a compact backend
Documentation
#[std]

struct Date {
    let month: num,
        day: num,
        year: num;
    fn new(month: num, day: num, year: num) -> Date {
        return [month, day, year]
    }

    fn birthday() -> Date {
        return Date::new(5, 14, 2002)
    }

    fn tmrw(self: &Date) -> Date {
        return Date::new(self->month, self->day + 1, self->year);
    }

    fn print(self: &Date) {
        prn!(self->month); prc!('/');
        prn!(self->day); prc!('/');
        prn!(self->year);
    }
}

struct Test {
    let n: num;
    fn new(n: num) -> Test { return n as Test; }

    fn print(self: &Test) {
        prs!("test: "); prn!(self->n); prend!();
    }
}

fn test() {
    let bday: Date = Date::birthday();
    bday.print(); prend!();
    ((bday.tmrw()).tmrw()).print(); prend!();
    let t: Test = Test::new(5);
    t.print();
}

fn main() -> void {
    for (let i=0; i<10; i=i+1) {
        test();
        prn!(i); prend!();
    }
}