home *** CD-ROM | disk | FTP | other *** search
/ Practical Programming in Tcl & Tk (4th Edition) / TCLBOOK4.BIN / pc / exsource.old / 13_6.tcl < prev    next >
Text File  |  2003-04-15  |  594b  |  33 lines

  1. #
  2. # Example 13-6
  3. # A procedure to read and evaluate commands.
  4. #
  5.  
  6. proc Command_Process {inCmd outCmd} {
  7.     global command
  8.     append command(line) [eval $inCmd]
  9.     if {[info complete $command(line)]} {
  10.         set code [catch {uplevel #0 $command(line)} result]
  11.         eval $outCmd {$result $code}
  12.         set command(line) {}
  13.     }
  14. }
  15. proc Command_Read {{in stdin}} {
  16.     if {[eof $in]} {
  17.         if {$in != "stdin"} {
  18.             close $in
  19.         }
  20.         return {}
  21.     }
  22.     return [gets $in]
  23. }
  24. proc Command_Display {file result code} {
  25.     puts stdout $result
  26. }
  27. while {![eof stdin]} {
  28.     Command_Process {Command_Read stdin} \
  29.         {Command_Display stdout}
  30. }
  31.  
  32.  
  33.