Interpret a flag argument as a mode.

parse flag A flag changes behavior without needing a separate value.

Flag Parse

flag
flag_parse.lua
Replay: real traced execution (multi-file project)
local flag = "--verbose"
local mode = "normal"
if flag == "--verbose" then
  mode = "verbose"
end
if flag == "--quiet" then
  mode = "quiet"
end
print("flag=" .. flag)
print("mode=" .. mode)
local flag = "--quiet"
local mode = "normal"
if flag == "--verbose" then
  mode = "verbose"
end
if flag == "--quiet" then
  mode = "quiet"
end
print("flag=" .. flag)
print("mode=" .. mode)
local flag = ""
local mode = "normal"
if flag == "--verbose" then
  mode = "verbose"
end
if flag == "--quiet" then
  mode = "quiet"
end
print("flag=" .. flag)
print("mode=" .. mode)
  1. flag ← --verbose, mode ← normal

    1local flag→ --verbose = "--verbose" --@flag="--quiet", ""2local mode→ normal = "normal"3if flag == "--verbose" then
  2. mode ← verbose

    2local mode = "normal"3if flag--verbose == "--verbose" then4  mode→ verbose = "verbose"5end
  3. print("flag=" .. flag)

    8end9print("flag=" .. flag--verbose)10print("mode=" .. modeverbose)
    outputflag=--verbose
    mode=verbose
  1. flag ← --quiet, mode ← normal

    1local flag→ --quiet = "--quiet"2local mode→ normal = "normal"3if flag == "--verbose" then
  2. mode ← quiet

    5end6if flag--quiet == "--quiet" then7  mode→ quiet = "quiet"8end
  3. print("flag=" .. flag)

    8end9print("flag=" .. flag--quiet)10print("mode=" .. modequiet)
    outputflag=--quiet
    mode=quiet
  1. flag ← (empty), mode ← normal

    1local flag→ (empty) = ""2local mode→ normal = "normal"3if flag == "--verbose" then4  mode = "verbose"5end6if flag == "--quiet" then7  mode = "quiet"8end9print("flag=" .. flag(empty))10print("mode=" .. modenormal)
    outputflag=
    mode=normal