function luaY.statement(h,W)local U=W.linenumber local B=W.t.token if B=="\084\075\095\073\070"then h:ifstat(W,U)return false elseif B=="\084\075\095\087\072\073\076\069"then h:whilestat(W,U)return false elseif B=="\084\075\095\068\079"then luaX:next(W)h:block(W)h:check_match(W,"\084\075\095\069\078\068","\084\075\095\068\079",U)return false elseif B=="\084\075\095\070\079\082"then h:forstat(W,U)return false elseif B=="\084\075\095\082\069\080\069\065\084"then h:repeatstat(W,U)return false elseif B=="\084\075\095\070\085\078\067\084\073\079\078"then h:funcstat(W,U)return false elseif B=="\084\075\095\076\079\067\065\076"then luaX:next(W)if h:testnext(W,"\084\075\095\070\085\078\067\084\073\079\078")then h:localfunc(W)else h:localstat(W)end return false elseif B=="\084\075\095\082\069\084\085\082\078"then h:retstat(W)return true elseif B=="\084\075\095\066\082\069\065\075"then luaX:next(W)h:breakstat(W)return true else h:exprstat(W)return false end end

function luaY:statement(ls)
  local line = ls.linenumber  -- may be needed for error messages
  local c = ls.t.token
  if c == "TK_IF" then  -- stat -> ifstat
    self:ifstat(ls, line)
    return false
  elseif c == "TK_WHILE" then  -- stat -> whilestat
    self:whilestat(ls, line)
    return false
  elseif c == "TK_DO" then  -- stat -> DO block END
    luaX:next(ls)  -- skip DO
    self:block(ls)
    self:check_match(ls, "TK_END", "TK_DO", line)
    return false
  elseif c == "TK_FOR" then  -- stat -> forstat
    self:forstat(ls, line)
    return false
  elseif c == "TK_REPEAT" then  -- stat -> repeatstat
    self:repeatstat(ls, line)
    return false
  elseif c == "TK_FUNCTION" then  -- stat -> funcstat
    self:funcstat(ls, line)
    return false
  elseif c == "TK_LOCAL" then  -- stat -> localstat
    luaX:next(ls)  -- skip LOCAL
    if self:testnext(ls, "TK_FUNCTION") then  -- local function?
      self:localfunc(ls)
    else
      self:localstat(ls)
    end
    return false
  elseif c == "TK_RETURN" then  -- stat -> retstat
    self:retstat(ls)
    return true  -- must be last statement
  elseif c == "TK_BREAK" then  -- stat -> breakstat
    luaX:next(ls)  -- skip BREAK
    self:breakstat(ls)
    return true  -- must be last statement
  else
    self:exprstat(ls)
    return false  -- to avoid warnings
  end--if c
end
