## If statements. variable = null ## Will be changed by the control flow. unreachable = function assert(false, 'Unreachable') end if true then variable = 42 else unreachable() end assert(variable == 42, 'If statement failed.') if false then unreachable() else if true then variable = null else unreachable() end assert(variable == null) if false then unreachable() else if false then unreachable() else if false then unreachable() else variable = "changed" end assert(variable == "changed") if false then unreachable() else if true if false unreachable() else if true variable = 123 else unreachable() end end assert(variable == 123, 'Nested if statement failed.') ## While statements while true variable = 1212 if true then break end end assert(variable == 1212) while true variable = 22 if true then else if false then end if false else if true variable += 2300 end variable += 1 break end assert(variable == 2323) map = { 'a':10, 'b':12, 'c':32 }; sum = 0 for k in map sum += map[k] end assert(sum == 54) val = 2 if val == 1 then val = null else if val == 2 then val = 'foo' else val = null end assert(val == 'foo') val = 2 if val == 1 then val = null else if val == 2 then val = 'bar' end ##< Need an extra end since 'else if' != 'else \n if'. end assert(val == 'bar') # If we got here, that means all test were passed. print('All TESTS PASSED')