Advertisement
LoganDark

Input Example Program

Jan 30th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.05 KB | None | 0 0
  1. local input = dofile('input')
  2.  
  3. input(nil, nil, nil, nil, nil, nil, nil, function(_sLine, _nPos, _nScroll, _bLast)
  4.     local sFg = ''
  5.     local sBg = ''
  6.     local tPstack = {}
  7.     local tCBstack = {}
  8.     local tBstack = {}
  9.     local tMatching = {}
  10.  
  11.     for i = 1, #_sLine do
  12.         local sChar = _sLine:sub(i, i)
  13.         local tStack
  14.  
  15.         if sChar == '(' then
  16.             table.insert(tPstack, i)
  17.         elseif sChar == ')' then
  18.             tStack = tPstack
  19.         elseif sChar == '{' then
  20.             table.insert(tCBstack, i)
  21.         elseif sChar == '}' then
  22.             tStack = tCBstack
  23.         elseif sChar == '[' then
  24.             table.insert(tBstack, i)
  25.         elseif sChar == ']' then
  26.             tStack = tBstack
  27.         end
  28.  
  29.         if tStack and #tStack > 0 then
  30.             tMatching[i] = tStack[#tStack]
  31.             tMatching[tStack[#tStack]] = i
  32.  
  33.             table.remove(tStack)
  34.         end
  35.  
  36.         sFg = sFg .. '0'
  37.         sBg = sBg .. 'f'
  38.     end
  39.  
  40.     if not _bLast then
  41.         if tMatching[_nPos] then
  42.             local nMatch = tMatching[_nPos]
  43.  
  44.             sFg = sFg:sub(1, _nPos - 1) .. '9' .. sFg:sub(_nPos + 1)
  45.             sFg = sFg:sub(1, nMatch - 1) .. '9' .. sFg:sub(nMatch + 1)
  46.         end
  47.     end
  48.  
  49.     return sFg, sBg
  50. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement