#!/usr/bin/env tclsh9.0 set line [read stdin] set total 0 set do 1 foreach inst [regexp -all -inline {mul\(\d+,\d+\)|do\(\)|don't\(\)} $line] { switch -- $inst { do() {set do 1} don't() {set do 0} default { if {$do} { scan $inst mul(%d,%d) a b incr total [expr {$a * $b}] } } } } puts $total