for:badly formed number

Hi,
I am doing the following but it complains and says "for:badly formed number"
does anyone know why?

#!/bin/tcsh
foreach(....)
............

set depth=64
set width=23
if ($depth==64) then
echo "if"
set addr_bits=5
else
echo "else"
endif

echo "addr_bits:$addr_bits"
echo "depth:$depth"
echo "width:$width"

end

Guys please note that i need to use #!/bin/tsch because foreach will not work without it. becuase the if statement works fine just the way it is if i don't use #!/bin/tsch and i do the following
depth=64
if ($depth==64) then
echo "if"
addr_bits=5
else
echo "else"
endif

the problem occurs when i use #!/bin/tcsh

i) please use the code markup tag and indention for better readability
ii) there's no single for in your snippet which depends on numbers
iii) it would be interesting to know what's inside foreach(...)

here is the actual code. note that testing1 consist of couple of line lets say asdaskljl64x3sdfsd is the first line of the testing1 file
#!/bin/tcsh
foreach filename (`cat testing1`)
set string=$filename
set depth=`echo "$string" | sed -e 's/^[^0-9]*\([0-9][0-9]*\)./\1/'`
set width=`echo "$string" | sed -e 's/.*\([0-9][0-9]*\)[^0-9]
$/\1/'`

if ($depth==64) then

     set addr_bits=5

endif

echo "addr_bits:$addr_bits"
echo "depth:$depth"
echo "width:$width"

end

error message does (in my eyes, generally I don't use ksh) not match the code.

Only point that matches numbers in any way:

However: Bourne-comment (mostly be the same on ksh): use

if ( "$depth" -eq "64") then

instead of

if ($depth==64) then

-eq => numerical comparison
"" => prevents problems when $depth is empty