#!/usr/bin/perl if ( $#ARGV==-1 ) { die "Not enough arguments"; } open IN, "<".$ARGV[0] or die "Cannot open `$ARGV[0]'"; $brc[0]=$brc[1]=$brc[2]=0; while () { while (( s/\\\(// || (s/\(// && ($brc[0]++, print "(")) ) || ( s/\\\)// || (s/\)// && ($brc[0]--, print ")")) ) || ( s/\\\{// || (s/\{// && ($brc[1]++, print "{")) ) || ( s/\\\}// || (s/\}// && ($brc[1]--, print "}")) ) || ( s/\\\[// || (s/\[// && ($brc[2]++, print "[")) ) || ( s/\\\]// || (s/\]// && ($brc[2]--, print "]")) )) { ; } } print "\n(): $brc[0], {}: $brc[1], []: $brc[2]\n";