diff options
author | Fred Drake <fdrake@acm.org> | 1999-04-22 13:08:09 (GMT) |
---|---|---|
committer | Fred Drake <fdrake@acm.org> | 1999-04-22 13:08:09 (GMT) |
commit | 693a2c65812eb61a87cacf1a23b83db35bbf9552 (patch) | |
tree | b3cb550bf33c9bff4da69505387d785e09769406 | |
parent | e0208cc83cbc91bca0eb802b540c45a430399ef5 (diff) | |
download | cpython-693a2c65812eb61a87cacf1a23b83db35bbf9552.zip cpython-693a2c65812eb61a87cacf1a23b83db35bbf9552.tar.gz cpython-693a2c65812eb61a87cacf1a23b83db35bbf9552.tar.bz2 |
Script to locate uses of \module where the module referred to is not
the module being documented at that point in the documentation; these
are candidates for conversion to \refmodule, which produces a
hyperlink in the HTML and PDF versions of the output.
-rwxr-xr-x | Doc/tools/findmodrefs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/Doc/tools/findmodrefs b/Doc/tools/findmodrefs new file mode 100755 index 0000000..c055686 --- /dev/null +++ b/Doc/tools/findmodrefs @@ -0,0 +1,45 @@ +#! /usr/bin/env python +# -*- Python -*- + +import fileinput +import glob +import os +import re +import 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: + files = sys.argv[1:] + 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: + print "%s:%s" % (fileinput.filename(), line[:-1]) + except KeyboardInterrupt: + sys.exit(1) + + +if __name__ == "__main__": + main() |