| --- 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") |