ola-parser 1.0.1

Ola Language Parser
Documentation
contract C {
    fn f(u32[]  b, u256 start, u256 end) -> (u32) {
        u32[]  m = b[start:end];
        u256 len = end - start;
        assert(len == m.length);
        for (u256 i = 0; i < len; i++) {
            assert(b[start:end][i] == m[i]);
        }
        return [b[start:end]][0][0];
    }

    fn g(u32[]  b, u256 start, u256 end) -> (u32[] ) {
        return b[start:end];
    }

    fn h1(u32[]  b) -> (u32[] ) {
        return b;
    }

    fn h(u32[]  b, u256 start, u256 end) -> (u32[] ) {
        return h1(b[start:end]);
    }
}
// ====
// compileViaYul: also
// ----
// f(int256[],u256,u256): 0x60, 1, 3, 4, 1, 2, 3, 4  -> 2
// g(int256[],u256,u256): 0x60, 1, 3, 4, 1, 2, 3, 4  -> 0x20, 2, 2, 3
// h(int256[],u256,u256): 0x60, 1, 3, 4, 1, 2, 3, 4  -> 0x20, 2, 2, 3