#! /usr/bin/env python

# Copyright (C) 2008, Mike Mueller <[email protected]>

"Minimal implementation."
import re
import sys

RE_NUMBER = re.compile(r"\[(\d+)\]")

def process(file_name):
   "Process all data."
   data = open(file_name).read()
   split_text = data.split("@footnote:")
   footnote_numbers = RE_NUMBER.findall(split_text[1])
   pairs = zip(footnote_numbers, range(1, len(footnote_numbers) + 1))
   number_dict = dict((number, counter) for number, counter in pairs)
   def callback(match):
       "Replace all old with new numbers."
       return '[%s]' % number_dict.get(match.group(1),
              'Error: no footnote found for number %s' % match.group(1))
   print RE_NUMBER.sub(callback, data),

if __name__ == '__main__':
   process(sys.argv[1])