function luaY.simpleexp(x,B,n)local c=B.t.token if c=="\084\075\095\078\085\077\066\069\082"then x:init_exp(n,"\086\075\078\085\077",0)n.nval=B.t.seminfo elseif c=="\084\075\095\083\084\082\073\078\071"then x:codestring(B,n,B.t.seminfo)elseif c=="\084\075\095\078\073\076"then x:init_exp(n,"\086\078\073\076",0)elseif c=="\084\075\095\084\082\085\069"then x:init_exp(n,"\086\084\082\085\069",0)elseif c=="\084\075\095\070\065\076\083\069"then x:init_exp(n,"\086\070\065\076\083\069",0)elseif c=="\084\075\095\068\079\084\083"then local c=B.fs x:check_condition(B,c.f.is_vararg~=0,"\099\097\110\110\111\116 \117\115\101 "..(x:LUA_QL("\046\046\046").." \111\117\116\115\105\100\101 \097 \118\097\114\097\114\103 \102\117\110\099\116\105\111\110"))local g=c.f.is_vararg if g>=x.VARARG_NEEDSARG then c.f.is_vararg=g-x.VARARG_NEEDSARG end x:init_exp(n,"\086\086\065\082\065\082\071",luaK:codeABC(c,"\079\080\095\086\065\082\065\082\071",0,1,0))elseif c=="\123"then x:constructor(B,n)return elseif c=="\084\075\095\070\085\078\067\084\073\079\078"then luaX:next(B)x:body(B,n,false,B.linenumber)return else x:primaryexp(B,n)return end luaX:next(B)end

function luaY:simpleexp(ls, v)
  -- simpleexp -> NUMBER | STRING | NIL | TRUE | FALSE | ... |
  --              constructor | FUNCTION body | primaryexp
  local c = ls.t.token
  if c == "TK_NUMBER" then
    self:init_exp(v, "VKNUM", 0)
    v.nval = ls.t.seminfo
  elseif c == "TK_STRING" then
    self:codestring(ls, v, ls.t.seminfo)
  elseif c == "TK_NIL" then
    self:init_exp(v, "VNIL", 0)
  elseif c == "TK_TRUE" then
    self:init_exp(v, "VTRUE", 0)
  elseif c == "TK_FALSE" then
    self:init_exp(v, "VFALSE", 0)
  elseif c == "TK_DOTS" then  -- vararg
    local fs = ls.fs
    self:check_condition(ls, fs.f.is_vararg ~= 0,
                    "cannot use "..self:LUA_QL("...").." outside a vararg function");
    -- NOTE: the following substitutes for a bitop, but is value-specific
    local is_vararg = fs.f.is_vararg
    if is_vararg >= self.VARARG_NEEDSARG then
      fs.f.is_vararg = is_vararg - self.VARARG_NEEDSARG  -- don't need 'arg'
    end
    self:init_exp(v, "VVARARG", luaK:codeABC(fs, "OP_VARARG", 0, 1, 0))
  elseif c == "{" then  -- constructor
    self:constructor(ls, v)
    return
  elseif c == "TK_FUNCTION" then
    luaX:next(ls)
    self:body(ls, v, false, ls.linenumber)
    return
  else
    self:primaryexp(ls, v)
    return
  end--if c
  luaX:next(ls)
end
