local function print_main_data()
print("printMainData")
end
local function print_other_data()
print("printOtherData")
end
local function print_some_data(print_all)
print_main_data()
if not print_all then
-- return without a value: leave at once
return
end
print_other_data()
end
print("print_all = false")
print_some_data(false)
print("print_all = true")
print_some_data(true)
-- return must be the last statement of a block
local bad, bad_err = load("return; x = 1")
-- bad = nil
-- bad_err = [string "return; x = 1"]:1:
-- <eof> expected near 'x'
-- do return end can stand anywhere
local good = load("do return end x = 1")
-- type(good) = function
print("bad = " .. tostring(bad))
print("bad_err = " .. bad_err)
print("type(good) = " .. type(good))