cinap_lenrekadd hg and python4bb9e2215 years agoHistory
63 lines · 1.8 KB · Text
RawDownload
#! /usr/bin/env python#  -*- Python -*- import fileinputimport getoptimport globimport osimport reimport sys  declare_rx = re.compile(    r"\\declaremodule(?:\[[a-zA-Z0-9]*\]*)?{[a-zA-Z_0-9]+}{([a-zA-Z_0-9]+)}") module_rx = re.compile(r"\\module{([a-zA-Z_0-9]+)}") def main():    try:        just_list = 0        print_lineno = 0        opts, args = getopt.getopt(sys.argv[1:], "ln", ["list", "number"])        for opt, arg in opts:            if opt in ("-l", "--list"):                just_list = 1            elif opt in ("-n", "--number"):                print_lineno = 1        files = args        if not files:            files = glob.glob("*.tex")            files.sort()        modulename = None        for line in fileinput.input(files):            if line[:9] == r"\section{":                modulename = None                continue            if line[:16] == r"\modulesynopsys{":                continue            m = declare_rx.match(line)            if m:                modulename = m.group(1)                continue            if not modulename:                continue            m = module_rx.search(line)            if m:                name = m.group(1)                if name != modulename:                    filename = fileinput.filename()                    if just_list:                        print filename                        fileinput.nextfile()                        modulename = None                    elif print_lineno:                        print "%s(%d):%s" \                              % (filename, fileinput.filelineno(), line[:-1])                    else:                        print "%s:%s" % (filename, line[:-1])    except KeyboardInterrupt:        sys.exit(1)  if __name__ == "__main__":    main()