1*4dc78e53SAndroid Build Coastguard Worker#!/usr/bin/env python 2*4dc78e53SAndroid Build Coastguard Worker 3*4dc78e53SAndroid Build Coastguard Workerfrom __future__ import print_function 4*4dc78e53SAndroid Build Coastguard Worker 5*4dc78e53SAndroid Build Coastguard Workerimport re 6*4dc78e53SAndroid Build Coastguard Workerimport sys 7*4dc78e53SAndroid Build Coastguard Worker 8*4dc78e53SAndroid Build Coastguard Workerrefs = {} 9*4dc78e53SAndroid Build Coastguard Workercomplete_file = "" 10*4dc78e53SAndroid Build Coastguard Worker 11*4dc78e53SAndroid Build Coastguard Workerfor line in open(sys.argv[1], "r"): 12*4dc78e53SAndroid Build Coastguard Worker complete_file += line 13*4dc78e53SAndroid Build Coastguard Worker 14*4dc78e53SAndroid Build Coastguard Workerfor m in re.findall("\\[\\[(.+)\\]\\]\n=+ ([^\n]+)", complete_file): 15*4dc78e53SAndroid Build Coastguard Worker ref, title = m 16*4dc78e53SAndroid Build Coastguard Worker refs["<<" + ref + ">>"] = "<<" + ref + ", " + title + ">>" 17*4dc78e53SAndroid Build Coastguard Worker 18*4dc78e53SAndroid Build Coastguard Worker 19*4dc78e53SAndroid Build Coastguard Workerdef translate(match): 20*4dc78e53SAndroid Build Coastguard Worker try: 21*4dc78e53SAndroid Build Coastguard Worker return refs[match.group(0)] 22*4dc78e53SAndroid Build Coastguard Worker except KeyError: 23*4dc78e53SAndroid Build Coastguard Worker return "" 24*4dc78e53SAndroid Build Coastguard Worker 25*4dc78e53SAndroid Build Coastguard Worker 26*4dc78e53SAndroid Build Coastguard Workerrc = re.compile("|".join(map(re.escape, sorted(refs, reverse=True)))) 27*4dc78e53SAndroid Build Coastguard Workerfor line in open(sys.argv[1], "r"): 28*4dc78e53SAndroid Build Coastguard Worker print(rc.sub(translate, line), end="") 29