somni 0.3.0

Somni scripting language and VM
Documentation
Function sum_range(...) -> int (stack: 80)
  0000: load Local(24) = MaybeSignedInt(0)
  0001: copy Local(64) = Local(8)
  0002: copy Local(72) = Local(16)
  0003: call range(?) -> Iter with sp=Local(56)
  0004: copy Local(32) = Local(56)
  0005: Local(40) = has_next(Local(32))
  0006: if Local(40) == false jump to 10
  0007: Local(41) = next(Local(32)) (int)
  0008: Local(24) = Local(24) + Local(41) (int)
  0009: jump to 5
  0010: copy Local(0) = Local(24)
  0011: return
Function sum_range_inferred(...) -> int (stack: 80)
  0012: load Local(24) = MaybeSignedInt(0)
  0013: copy Local(64) = Local(8)
  0014: copy Local(72) = Local(16)
  0015: call range(?) -> Iter with sp=Local(56)
  0016: copy Local(32) = Local(56)
  0017: Local(40) = has_next(Local(32))
  0018: if Local(40) == false jump to 22
  0019: Local(41) = next(Local(32)) (int)
  0020: Local(24) = Local(24) + Local(41) (int)
  0021: jump to 17
  0022: copy Local(0) = Local(24)
  0023: return
Function count(...) -> int (stack: 80)
  0024: load Local(24) = MaybeSignedInt(0)
  0025: copy Local(64) = Local(8)
  0026: copy Local(72) = Local(16)
  0027: call range(?) -> Iter with sp=Local(56)
  0028: copy Local(32) = Local(56)
  0029: Local(40) = has_next(Local(32))
  0030: if Local(40) == false jump to 35
  0031: Local(41) = next(Local(32)) (int)
  0032: load Local(49) = MaybeSignedInt(1)
  0033: Local(24) = Local(24) + Local(49) (int)
  0034: jump to 29
  0035: copy Local(0) = Local(24)
  0036: return
Function skip_and_stop(...) -> int (stack: 64)
  0037: load Local(8) = MaybeSignedInt(0)
  0038: load Local(48) = MaybeSignedInt(0)
  0039: load Local(56) = MaybeSignedInt(10)
  0040: call range(?) -> Iter with sp=Local(40)
  0041: copy Local(16) = Local(40)
  0042: Local(24) = has_next(Local(16))
  0043: if Local(24) == false jump to 52
  0044: Local(25) = next(Local(16)) (int)
  0045: load Local(33) = MaybeSignedInt(3)
  0046: Local(41) = Local(25) == Local(33) (int)
  0047: if Local(41) == false jump to 49
  0048: jump to 42
  0049: load Local(33) = MaybeSignedInt(6)
  0050: Local(41) = Local(25) == Local(33) (int)
  0051: if Local(41) == false jump to 54
  0052: copy Local(0) = Local(8)
  0053: return
  0054: Local(8) = Local(8) + Local(25) (int)
  0055: jump to 42
Function nested(...) -> int (stack: 81)
  0056: load Local(8) = MaybeSignedInt(0)
  0057: load Local(48) = MaybeSignedInt(0)
  0058: load Local(56) = MaybeSignedInt(3)
  0059: call range(?) -> Iter with sp=Local(40)
  0060: copy Local(16) = Local(40)
  0061: Local(24) = has_next(Local(16))
  0062: if Local(24) == false jump to 75
  0063: Local(25) = next(Local(16)) (int)
  0064: load Local(65) = MaybeSignedInt(0)
  0065: load Local(73) = MaybeSignedInt(3)
  0066: call range(?) -> Iter with sp=Local(57)
  0067: copy Local(33) = Local(57)
  0068: Local(41) = has_next(Local(33))
  0069: if Local(41) == false jump to 74
  0070: Local(42) = next(Local(33)) (int)
  0071: Local(50) = Local(25) * Local(42) (int)
  0072: Local(8) = Local(8) + Local(50) (int)
  0073: jump to 68
  0074: jump to 61
  0075: copy Local(0) = Local(8)
  0076: return