function c(e){return RegExp("^(?:"+e.join("|")+")","i")}function i(e){return RegExp("^(?:"+e.join("|")+")$","i")}var g=i("_G,_VERSION,assert,collectgarbage,dofile,error,getfenv,getmetatable,ipairs,load,loadfile,loadstring,module,next,pairs,pcall,print,rawequal,rawget,rawset,require,select,setfenv,setmetatable,tonumber,tostring,type,unpack,xpcall,coroutine.create,coroutine.resume,coroutine.running,coroutine.status,coroutine.wrap,coroutine.yield,debug.debug,debug.getfenv,debug.gethook,debug.getinfo,debug.getlocal,debug.getmetatable,debug.getregistry,debug.getupvalue,debug.setfenv,debug.sethook,debug.setlocal,debug.setmetatable,debug.setupvalue,debug.traceback,close,flush,lines,read,seek,setvbuf,write,io.close,io.flush,io.input,io.lines,io.open,io.output,io.popen,io.read,io.stderr,io.stdin,io.stdout,io.tmpfile,io.type,io.write,math.abs,math.acos,math.asin,math.atan,math.atan2,math.ceil,math.cos,math.cosh,math.deg,math.exp,math.floor,math.fmod,math.frexp,math.huge,math.ldexp,math.log,math.log10,math.max,math.min,math.modf,math.pi,math.pow,math.rad,math.random,math.randomseed,math.sin,math.sinh,math.sqrt,math.tan,math.tanh,os.clock,os.date,os.difftime,os.execute,os.exit,os.getenv,os.remove,os.rename,os.setlocale,os.time,os.tmpname,package.cpath,package.loaded,package.loaders,package.loadlib,package.path,package.preload,package.seeall,string.byte,string.char,string.dump,string.find,string.format,string.gmatch,string.gsub,string.len,string.lower,string.match,string.rep,string.reverse,string.sub,string.upper,table.concat,table.insert,table.maxn,table.remove,table.sort".split(",")),m=i(["and","break","elseif","false","nil","not","or","return","true","function","end","if","then","else","do","while","repeat","until","for","in","local"]),d=i(["function","if","repeat","do","\\(","{"]),p=i(["end","until","\\)","}"]),h=c(["end","until","\\)","}","else","elseif"]);function l(e){for(var t=0;e.eat("=");)++t;return e.eat("["),t}function s(e,t){var n=e.next();return n=="-"&&e.eat("-")?e.eat("[")&&e.eat("[")?(t.cur=u(l(e),"comment"))(e,t):(e.skipToEnd(),"comment"):n=='"'||n=="'"?(t.cur=f(n))(e,t):n=="["&&/[\[=]/.test(e.peek())?(t.cur=u(l(e),"string"))(e,t):/\d/.test(n)?(e.eatWhile(/[\w.%]/),"number"):/[\w_]/.test(n)?(e.eatWhile(/[\w\\\-_.]/),"variable"):null}function u(e,t){return function(n,a){for(var r=null,o;(o=n.next())!=null;)if(r==null)o=="]"&&(r=0);else if(o=="=")++r;else if(o=="]"&&r==e){a.cur=s;break}else r=null;return t}}function f(e){return function(t,n){for(var a=!1,r;(r=t.next())!=null&&!(r==e&&!a);)a=!a&&r=="\\";return a||(n.cur=s),"string"}}const b={name:"lua",startState:function(){return{basecol:0,indentDepth:0,cur:s}},token:function(e,t){if(e.eatSpace())return null;var n=t.cur(e,t),a=e.current();return n=="variable"&&(m.test(a)?n="keyword":g.test(a)&&(n="builtin")),n!="comment"&&n!="string"&&(d.test(a)?++t.indentDepth:p.test(a)&&--t.indentDepth),n},indent:function(e,t,n){var a=h.test(t);return e.basecol+n.unit*(e.indentDepth-(a?1:0))},languageData:{indentOnInput:/^\s*(?:end|until|else|\)|\})$/,commentTokens:{line:"--",block:{open:"--[[",close:"]]--"}}}};export{b as t};
