Why doesn't Lua have nameless labels or something? Would look somewhat like this: local s = "start" ::@:: print s if s == "restart" then goto + end if s == "start" then s = "restart" goto - end ::@:: print "end"