ola-parser 1.0.1

Ola Language Parser
Documentation
contract C {
    fn f() -> (u256) {
        return 0;
    }
    fn f(u256 a) -> (u256) {
        return a;
    }
    fn f(u256 a, u256 b) -> (u256) {
        return a+b;
    }
    fn f(u256 a, u256 b, u256 c) -> (u256) {
        return a+b+c;
    }
    fn call(u256 num) -> (u256) {
        if (num == 0)
            return f();
        if (num == 1)
            return f({a: 1});
        if (num == 2)
            return f({b: 1, a: 2});
        if (num == 3)
            return f({c: 1, a: 2, b: 3});
        if (num == 4)
            return f({b: 5, c: 1, a: 2});

        return 500;
    }
}
// ====
// compileToEwasm: also
// compileViaYul: also
// ----
// call(u256): 0  -> 0
// call(u256): 1  -> 1
// call(u256): 2  -> 3
// call(u256): 3  -> 6
// call(u256): 4  -> 8
// call(u256): 5  -> 500