On 18.07.2011 16:39, Xah Lee wrote:

On Jul 17, 12:47 am, Xah Lee<xah...@gmail.com>  wrote:
2011-07-16

folks, this one will be interesting one.

the problem is to write a script that can check a dir of text files
(and all subdirs) and reports if a file has any mismatched matching
brackets.
…

Ok, here's my solution (pasted at bottom). I haven't tried to make it
elegant or terse, yet, seeing that many are already much elegent than
i could possibly do so with my code.

my solution basically use a stack. (i think all of us are doing
similar) Here's the steps:

• Go thru the file char by char, find a bracket char.
• check if the one on stack is a matching opening char. If so remove
it. Else, push the current onto the stack.
• Repeat the above till end of file.
• If the stack is not empty, then the file got mismatched brackets.
Report it.
• Do the above on all files.

Small correction: my solution works differently (although internally the regexp engine will roughly do the same). So, my approach summarized

- traverse a directory tree
- for each found item of type "file"
-    read the whole content
-    throw it at a regexp which is anchored at the beginning
     and does the recursive parsing
-    report file if the match is shorter than the file

Note: special feature for recursive matching is used which Perl's regexp engine likely can do as well but many others don't.

Cheers

        robert

--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to