Mining Lua Code

lua-users home
wiki

Here's some examples of content analysis [1] of Lua source code...

What's the least popular string function?

-- usage: clone LuaDist repo [1] and then do lua findescape.lua `find /tmp/Repository -name '*.lua'`
-- [1] github.com/LuaDist/Repository
-- DavidManura
 
lexer = require 'lxsh.lexers.lua'  -- https://github.com/xolox/lua-lxsh

local function readfile(filename)
  local fh = io.open(filename, 'r')
  local text; if fh then text = fh:read'*a':gsub('\r','\n') end
  fh:close()
  return text
end

local counts = {}

for _, filename in ipairs{...} do
  --print(filename)
  local text = readfile(filename)

  for kind, text in lexer.gmatch(text) do
    if kind ~= 'comment' and kind ~= 'whitespace' and kind ~= "string" and kind ~= "number" then
      counts[text] = (counts[text] or 0) + 1
    end
  end
end

local names = {}
for name, count in pairs(counts) do names[#names+1] = {name, count} end
table.sort(names, function(a,b) return a[2] < b[2] end)
for _, pair in ipairs(names) do
  print(pair[1], pair[2])
end

lua test.lua `find /tmp/Repository/ -name '*.lua'`|grep '^string\.'
...
string.gfind	27
string.dump	35
string.lower	41
string.upper	41
string.gmatch	46
string.char	83
string.match	106
string.byte	139
string.rep	148
string.len	159
string.sub	332
string.find	400
string.gsub	492
string.format	722

It's string.reverse.

(Caveat: the above ignores string method calls.)

What percent of source files misuse string escape sequences?

See LuaList:2010-10/msg00449.html .

See Also


RecentChanges · preferences
edit · history
Last edited July 6, 2011 3:01 am GMT (diff)