nilang 0.4.1

A scripting language interpreter for Advent of Code
Documentation
========= FILE ./src/runtime/tests/fixtures/closure_counter/closure_counter.ir.actual ========
fn2 () {
block0:
  LOAD_UPVAL count_0
  t1 = #val
  t2 = count_0[t1]
  t3 = 1
  t4 = t2 + t3
  count_0[t1] = t4
  t7 = count_0[t1]
  RETURN t7

}
fn1 () {
block0:
  t0 = NEW_MAP
  t1 = #val
  t2 = 0
  t0[t1] = t2
  t4 = fn2
  STORE_UPVAL t4, t0
  RETURN t4

}
MAIN () {
block0:
  new_counter_0 = fn1
  counter_0 = CALL new_counter_0
  i_0 = 0
  next block1(i_0)

block1(i_1):
  t5 = 10
  t6 = i_1 < t5
  jnt t6 block3
  next block2

block2:
  t7 = CALL counter_0
  PRINT t7
  t10 = 1
  i_2 = i_1 + t10
  jump block1(i_2)

block3:
  t12 = null
  RETURN t12

}