265 |
265 |
266 _modules[module] = dict |
266 _modules[module] = dict |
267 classstack = [] # stack of (class, indent) pairs |
267 classstack = [] # stack of (class, indent) pairs |
268 acstack = [] # stack of (access control, indent) pairs |
268 acstack = [] # stack of (access control, indent) pairs |
269 indent = 0 |
269 indent = 0 |
270 src = Utilities.decode(f.read())[0] |
270 src = f.read() |
271 f.close() |
271 f.close() |
272 |
272 |
273 lineno, last_lineno_pos = 1, 0 |
273 lineno, last_lineno_pos = 1, 0 |
274 i = 0 |
274 i = 0 |
275 while 1: |
275 while True: |
276 m = _getnext(src, i) |
276 m = _getnext(src, i) |
277 if not m: |
277 if not m: |
278 break |
278 break |
279 start, i = m.span() |
279 start, i = m.span() |
280 |
280 |
323 # else it's a nested def |
323 # else it's a nested def |
324 else: |
324 else: |
325 # it's a function |
325 # it's a function |
326 f = Function(module, meth_name, |
326 f = Function(module, meth_name, |
327 file, lineno, meth_sig) |
327 file, lineno, meth_sig) |
328 if dict_counts.has_key(meth_name): |
328 if meth_name in dict_counts: |
329 dict_counts[meth_name] += 1 |
329 dict_counts[meth_name] += 1 |
330 meth_name = "%s_%d" % (meth_name, dict_counts[meth_name]) |
330 meth_name = "%s_%d" % (meth_name, dict_counts[meth_name]) |
331 else: |
331 else: |
332 dict_counts[meth_name] = 0 |
332 dict_counts[meth_name] = 0 |
333 dict[meth_name] = f |
333 dict[meth_name] = f |
360 inherit = [_commentsub('', inherit)] |
360 inherit = [_commentsub('', inherit)] |
361 # remember this class |
361 # remember this class |
362 cur_class = Class(module, class_name, inherit, |
362 cur_class = Class(module, class_name, inherit, |
363 file, lineno) |
363 file, lineno) |
364 if not classstack: |
364 if not classstack: |
365 if dict.has_key(class_name): |
365 if class_name in dict: |
366 cur_class = dict[class_name] |
366 cur_class = dict[class_name] |
367 else: |
367 else: |
368 dict[class_name] = cur_class |
368 dict[class_name] = cur_class |
369 else: |
369 else: |
370 cls = classstack[-1][0] |
370 cls = classstack[-1][0] |
371 if cls.classes.has_key(class_name): |
371 if class_name in cls.classes: |
372 cur_class = cls.classes[class_name] |
372 cur_class = cls.classes[class_name] |
373 elif cls.name == class_name or class_name == "self": |
373 elif cls.name == class_name or class_name == "self": |
374 cur_class = cls |
374 cur_class = cls |
375 else: |
375 else: |
376 cls._addclass(class_name, cur_class) |
376 cls._addclass(class_name, cur_class) |
392 last_lineno_pos = start |
392 last_lineno_pos = start |
393 module_name = m.group("ModuleName") |
393 module_name = m.group("ModuleName") |
394 # remember this class |
394 # remember this class |
395 cur_class = Module(module, module_name, file, lineno) |
395 cur_class = Module(module, module_name, file, lineno) |
396 if not classstack: |
396 if not classstack: |
397 if dict.has_key(module_name): |
397 if module_name in dict: |
398 cur_class = dict[module_name] |
398 cur_class = dict[module_name] |
399 else: |
399 else: |
400 dict[module_name] = cur_class |
400 dict[module_name] = cur_class |
401 else: |
401 else: |
402 cls = classstack[-1][0] |
402 cls = classstack[-1][0] |
403 if cls.classes.has_key(module_name): |
403 if module_name in cls.classes: |
404 cur_class = cls.classes[module_name] |
404 cur_class = cls.classes[module_name] |
405 elif cls.name == module_name: |
405 elif cls.name == module_name: |
406 cur_class = cls |
406 cur_class = cls |
407 else: |
407 else: |
408 cls._addclass(module_name, cur_class) |
408 cls._addclass(module_name, cur_class) |
525 elif m.start("CodingLine") >= 0: |
525 elif m.start("CodingLine") >= 0: |
526 # a coding statement |
526 # a coding statement |
527 coding = m.group("Coding") |
527 coding = m.group("Coding") |
528 lineno = lineno + src.count('\n', last_lineno_pos, start) |
528 lineno = lineno + src.count('\n', last_lineno_pos, start) |
529 last_lineno_pos = start |
529 last_lineno_pos = start |
530 if not dict.has_key("@@Coding@@"): |
530 if "@@Coding@@" not in dict: |
531 dict["@@Coding@@"] = ClbrBaseClasses.Coding(module, file, lineno, coding) |
531 dict["@@Coding@@"] = ClbrBaseClasses.Coding(module, file, lineno, coding) |
532 |
532 |
533 else: |
533 else: |
534 assert 0, "regexp _getnext found something unexpected" |
534 assert 0, "regexp _getnext found something unexpected" |
535 |
535 |