Warning, /frameworks/syntax-highlighting/autotests/input/highlight.lua is written in an unsupported language. File is not indexed.

0001 #!/usr/bin/env lua
0002 
0003 -- Metatables
0004 t = {
0005     __add=function(a,b)return a+b end,
0006     __sub=function(a,b)return a-b end,
0007     __mul=function(a,b)return a*b end,
0008     __div=function(a,b)return a/b end,
0009     __mod=function(a,b)return a%b end,
0010     __pow=function(a,b)return a^b end,
0011     __unm=function(a)return -a end,
0012     __idiv=function(a,b)return a//b end,
0013     __band=function(a,b)return a&b end,
0014     __bor=function(a,b)return a|b end,
0015     __bxor=function(a,b)return a~b end,
0016     __bnot=function(a)return ~a end,
0017     __shl=function(a,b)return a<<b end,
0018     __shr=function(a,b)return a>>b end,
0019     __concat=function(a,b)return a..b end,
0020     __len=function(a)return #a end,
0021     __eq=function(a,b)return a==b end,
0022     __lt=function(a,b)return a<b end,
0023     __le=function(a,b)return a<=b end,
0024     __index=function(t,k)return t[k] end,
0025     __newindex=function(t,k,v)return t[k]=v end,
0026     __call=function(f, ...)return f(...) end,
0027 
0028    __tostring=function(a)return tostring(a) end,
0029    __pairs=function(t)return pairs(a) end,
0030    -- setmetatable
0031    __metatable=true
0032    -- Garbage collector
0033    __gc=function() end
0034    -- Weak table
0035    __mode='k' -- or 'v'
0036 }
0037 
0038 a or b
0039 a and b
0040 a~=b
0041 a>=b
0042 true or false
0043 a or nil
0044 a::m
0045 a.m
0046 a;a
0047 
0048 
0049 -- String
0050 '\a'
0051 '\b'
0052 '\f'
0053 '\n'
0054 '\r'
0055 '\t'
0056 '\v'
0057 '\\'
0058 '\"'
0059 '\''
0060 '\z'
0061 '\xff'
0062 '\xFF'
0063 '\231'
0064 '\23'
0065 '\2'
0066 '\u{100201}' -- max 6 digits
0067 '\2a\ks' -- error
0068 
0069 'multi\
0070 line'
0071 'multi\z
0072 line'
0073 'multi\z    line\
0074 2'
0075 
0076 a = 'alo\n123"'
0077 a = "alo\n123\""
0078 a = '\97lo\10\04923"'
0079 a = [[alo
0080 123"]]
0081 a = [==[
0082 alo
0083 123"]==]
0084 
0085 
0086 -- Decimal
0087 3
0088 345
0089 0xff
0090 0xBEBADA
0091 
0092 -- Float
0093 3.
0094 .3
0095 3.0
0096 3.1416
0097 314.16e-2
0098 314.e+2
0099 0.31416E1
0100 34e1
0101 0.e3
0102 0x0.1E
0103 0xA23p-4
0104 0xA.p+4
0105 0x.ap4
0106 0X1.921FB54442D18P+1
0107 -- error
0108 32p
0109 0xp-4
0110 0x.p-4
0111 3.x
0112 
0113 
0114 -- single comment
0115 xyz()
0116 --[[
0117  long comment
0118 ]]
0119 xyz()
0120 
0121 -- TODO bla bla
0122 --[[ TODO bla bla ]]
0123 
0124 a = { [f(1)] = g; "x", "y"; x = 1, f(x), [30] = 23; 45 }
0125 
0126 -- is equivalent to
0127 
0128 do
0129   local t = {}
0130   t[f(1)] = g
0131   t[1] = "x" -- 1st exp
0132   t[2] = "y" -- 2nd exp
0133   t.x = 1 -- t["x"] = 1
0134   t[3] = f(x) -- 3rd exp
0135   t[30] = 23
0136   t[4] = 45 -- 4th exp
0137   a = t
0138 end
0139 
0140 32-0x43+0x2-5
0141 return"a"
0142 return'a'
0143 return{}
0144 f(3)
0145 f'a'
0146 f"a"
0147 f{s=2}
0148 f[[s]]
0149 f[=[s]=]
0150 #a
0151 
0152 local CONSTANT = a
0153 
0154 a = {}
0155 local x = 20
0156 for i=1,10 do
0157   local y = 0
0158   a[i] = function () y=y+1; return x+y end
0159 end
0160 
0161 local function foo()
0162 end
0163 
0164 function obj:foo()
0165   print(self:bar())
0166 end
0167 
0168 function obj.bar(self)
0169   print(self)
0170   print(self.value)
0171 end
0172 
0173 --! \brief gfind is deprecated
0174 string.gfind('s')
0175 string.gmatch('f')
0176 
0177 function foo()
0178   if x then
0179     function() end
0180     bar=function()
0181       if y then
0182         if z then end
0183       end
0184     end
0185   end
0186 end
0187 
0188 -- attributes
0189 local a<const> = 2
0190 local a<const> print(a)
0191 local f <close>, const <    const >
0192 local a <cloe>, b< cons >, c<const, d<close> ; a<b
0193 local a <cloe> -- bla, 
0194 b< cons >
0195 local a <close> --[[
0196 b <const>]], b <const> --[[ xyz ]] , c <close>
0197 b< cons >
0198 
0199 --- \code
0200 --! a = 3
0201 --! \endcode
0202 a = 3