On Sat, 22 Dec 2007 04:13:31 -0800, MartinRinehart wrote: > Bruno Desthuilliers wrote: >> ... that's definitively not >> something I'd store in global. > > So where would you put it?
Context is all gone, so I'm not sure that I remember what "it" is. I think it is the text that you're parsing. I believe you are currently doing something like this: TEXT = "placeholder" def parse(): while True: token = get_next_token() # looks at global TEXT yield token # And finally actually run your parser: TEXT = open("filename", "r").read() for token in parse(): print token If I were doing this, I would do something like this: def parse(text): while True: token = get_next_token() # looks at local text yield token # Run as many independent parsers as I need: parser1 = parse(open("filename", "r").read()) parser2 = parse(open("filename2", "r").read()) parser3 = parse("some text") for token in parser1: print token # etc. Unless the text you are parsing is truly enormous (multiple hundreds of megabytes) you are unlikely to run into memory problems. And you gain the ability to run multiple parsers at once. -- Steven -- http://mail.python.org/mailman/listinfo/python-list