a little parsing challenge ☺
Billy Mays
81282ed9a88799d21e77957df2d84bd6514d9af6 at myhashismyemail.com
Mon Jul 18 13:12:08 EDT 2011
On 07/17/2011 03:47 AM, Xah Lee wrote:
> 2011-07-16
I gave it a shot. It doesn't do any of the Unicode delims, because
let's face it, Unicode is for goobers.
import sys, os
pairs = {'}':'{', ')':'(', ']':'[', '"':'"', "'":"'", '>':'<'}
valid = set( v for pair in pairs.items() for v in pair )
for dirpath, dirnames, filenames in os.walk(sys.argv[1]):
for name in filenames:
stack = [' ']
with open(os.path.join(dirpath, name), 'rb') as f:
chars = (c for line in f for c in line if c in valid)
for c in chars:
if c in pairs and stack[-1] == pairs[c]:
stack.pop()
else:
stack.append(c)
print ("Good" if len(stack) == 1 else "Bad") + ': %s' % name
--
Bill
More information about the Python-list
mailing list