nilang 0.4.1

A scripting language interpreter for Advent of Code
Documentation
========= FILE ./src/runtime/tests/fixtures/globals/globals.ir.actual ========
fn1 () {
block0:
  t0 = #test
  LOAD_GLB t1, t0
  PRINT t1
  LOAD_GLB t5, t0
  t6 = 1
  t7 = t5 + t6
  STORE_GLB t0, t7
  LOAD_GLB t10, t0
  t11 = 10
  t12 = t10 >= t11
  jnt t12 block2
  next block1

block1:
  RETURN t13

block2:
  t14 = #b
  LOAD_GLB t15, t14
  t16 = CALL t15
  RETURN t16

}
fn2 () {
block0:
  t0 = #test
  LOAD_GLB t1, t0
  PRINT t1
  LOAD_GLB t5, t0
  t6 = 1
  t7 = t5 + t6
  STORE_GLB t0, t7
  t9 = #c
  LOAD_GLB t10, t9
  t11 = CALL t10
  RETURN t11

}
fn3 () {
block0:
  t0 = #test
  LOAD_GLB t1, t0
  PRINT t1
  LOAD_GLB t5, t0
  t6 = 1
  t7 = t5 + t6
  STORE_GLB t0, t7
  t9 = #a
  LOAD_GLB t10, t9
  t11 = CALL t10
  RETURN t11

}
MAIN () {
block0:
  t0 = 0
  t1 = #test
  STORE_GLB t1, t0
  t2 = fn1
  t3 = #a
  STORE_GLB t3, t2
  t4 = fn2
  t5 = #b
  STORE_GLB t5, t4
  t6 = fn3
  t7 = #c
  STORE_GLB t7, t6
  LOAD_GLB t9, t3
  t10 = CALL t9
  RETURN t10

}