nilang 0.4.1

A scripting language interpreter for Advent of Code
Documentation
========= FILE ./src/runtime/tests/fixtures/forloop_string/forloop_string.ir.actual ========
fn2 () {
block0:
  LOAD_UPVAL i_0
  t1 = 0
  n_0 = i_0[t1]
  t5 = i_0[t1]
  LOAD_UPVAL self_0
  t7 =  # self_0
  t8 = t5 < t7
  jnt t8 block3
  next block1

block1:
  t10 = i_0[t1]
  t11 = 1
  t12 = t10 + t11
  i_0[t1] = t12
  t14 = self_0[n_0]
  RETURN t14

block3:
  t15 = #iter_end
  RETURN t15

}
fn1 (self_0) {
block0:
  t1 = NEW_LIST
  t2 = 0
  t1 << t2
  t5 = fn2
  STORE_UPVAL t5, t1
  STORE_UPVAL t5, self_0
  RETURN t5

}
MAIN () {
block0:
  t0 = #str
  t1 = #iter
  t2 = fn1
  patch_0 = #patch
  STORE_ARG t0
  STORE_ARG t1
  STORE_ARG t2
  t4 = CALL patch_0
  text_0 = "Hello"
  t8 = text_0[t1]
  t9 = CALL t8
  next block1

block1:
  char_0 = CALL t9
  t11 = #iter_end
  t12 = char_0 == t11
  jit t12 block3
  next block2

block2:
  PRINT char_0
  jump block1

block3:
  t15 = null
  RETURN t15

}