blob: 317dccbf34cf5d22945d3f5e291797a521d5f7a0 [file] [log] [blame]
--- The Great Computer Language Shootout
-- http://shootout.alioth.debian.org/
--
-- Contributed by Roberto Ierusalimschy
-- Modified by Mike Pall
BUFSIZE = 2^12
local read, len, gsub = io.read, string.len, string.gsub
local cc,lc,wc = 0,0,0
while true do
local lines, rest = read(BUFSIZE, "*l")
if lines == nil then break end
if rest then lines = lines..rest..'\n' end
cc = cc+len(lines)
local _,t = gsub(lines, "%S+", "") -- count words in the line
wc = wc+t
_,t = gsub(lines, "\n", "\n") -- count newlines in the line
lc = lc+t
end
io.write(lc, " ", wc, " ", cc, "\n")