summaryrefslogtreecommitdiffstats
path: root/fickle/examples/wc2.fcl
diff options
context:
space:
mode:
Diffstat (limited to 'fickle/examples/wc2.fcl')
-rw-r--r--fickle/examples/wc2.fcl102
1 files changed, 0 insertions, 102 deletions
diff --git a/fickle/examples/wc2.fcl b/fickle/examples/wc2.fcl
deleted file mode 100644
index e887003..0000000
--- a/fickle/examples/wc2.fcl
+++ /dev/null
@@ -1,102 +0,0 @@
-%{
-#!/usr/bin/tclsh
-
-# Counts characters, words, and lines, with support for multiple
-# filenames.
-
-# This is based upon example 'ch2-03.l' from "lex & yacc" by John
-# R. Levine, Tony Mason, and Doug Brown (by O'Reilly & Associates, ISBN
-# 1-56592-000-7). For more information on using lex and yacc, see
-# http://www.oreilly.com/catalog/lex/.
-
-set charCount 0
-set wordCount 0
-set lineCount 0
-
-%}
-
-%option noheaders
-
-word [^ \t\n]+
-eol \n
-
-%%
-
-{word} { incr ::wordCount; incr ::charCount $yyleng }
-{eol} { incr ::charCount; incr ::lineCount }
-. { incr ::charCount }
-
-%%
-
-# lexer calls yywrap to handle EOF conditions (e.g., to
-# connect to a new file, as we do in this case.)
-proc yywrap {} {
- set file ""
- if {$::currentFile != 0 && $::nFiles > 1 && $::currentFile < $::nFiles} {
- # print out statstics for previous file
- puts [format "%8u %8u %8u %s" $::lineCount $::wordCount $::charCount \
- [lindex $::fileList [expr {$::currentFile - 1}]]]
- incr ::totalCC $::charCount
- incr ::totalWC $::wordCount
- incr ::totalLC $::lineCount
- set ::charCount 0
- set ::wordCount 0
- set ::lineCount 0
- close $::yyin
- }
- while {$::currentFile < $::nFiles} {
- if {[catch {open [lindex $::fileList $::currentFile] r} file]} {
- puts stderr "could not open [lindex $::fileList $::currentFile]"
- incr ::currentFile
- } else {
- set ::yyin $file
- incr ::currentFile
- break
- }
- }
- if {$file != ""} {
- return 0 ;# 0 means there's more input
- } else {
- return 1
- }
-}
-
-set fileList ""
-set currentFile 0
-set nFiles 0
-set totalCC 0
-set totalWC 0
-set totalLC 0
-
-set fileList $argv
-set nFiles [llength $argv]
-
-if {[llength $argv] == 1} {
- # handle single file case differenly since we don't need to print a
- # summary line
- set currentFile 1
- if {[catch {open [lindex $argv 0] r} file]} {
- puts stderr "could not open file [lindex $argv 0]"
- exit 1
- }
- set yyin $file
-}
-if {[llength $argv] > 1} {
- yywrap
-}
-
-yylex
-
-# handle zero or one file differently from multiple files
-if {[llength $argv] > 1} {
- puts [format "%8u %8u %8u %s" $lineCount $wordCount $charCount \
- [lindex $argv [expr {$currentFile - 1}]]]
- incr totalCC $charCount
- incr totalWC $wordCount
- incr totalLC $lineCount
- puts [format "%8u %8u %8u total" $totalLC $totalWC $totalCC]
-} else {
- puts [format "%8u %8u %8u" $lineCount $wordCount $charCount]
-}
-
-return 0