#!/usr/local/bin/tclsh
# $Id: wc.tcl,v 1.5 2001/05/17 15:44:09 doug Exp $
# http://www.bagley.org/~doug/shootout/

# this program is modified from:
#   http://cm.bell-labs.com/cm/cs/who/bwk/interps/pap.html
# Timing Trials, or, the Trials of Timing: Experiments with Scripting
# and User-Interface Languages</a> by Brian W. Kernighan and
# Christopher J. Van Wyk.

# Modified by Miguel Sofer and Jeff Hobbs

proc main {} {
    set nl 0
    set nc 0
    set nw 0

    set map [list \" x \{ x \} x]
    while {1} {
    set data [read stdin 4096]
    if {![string length $data]} {break}
    if {[gets stdin extra] >= 0} {
        append data $extra
        incr nc
    }
    incr nc [string length $data]
    incr nw [llength [string map $map $data]]
    incr nl [llength [split $data "\n"]]
    }
    puts "$nl $nw $nc"
}

main