#!/usr/bin/env python
import sys, re

fnmap = {}           # Uebersetzung alter Index --> neuer Index
fndir = {}           # Neuer Index --> Fussnotentext
footnote_number = 1  # aktuelle Fussnote, 0 wenn im Fussnotenbereich

def replace_index(m):
  global fnmap, fndir, footnote_number
  idx = int(m.group(1))
  if not idx in fnmap:
    fnmap[idx] = footnote_number
    footnote_number +=1
  return "[%s]" % fnmap[idx]

file = file(sys.argv[1])
for line in file:
  if line == "@footnote:\n":
    footnote_number = 0
  else:
    if footnote_number:
      # Wir sind im Text-Bereich
      print re.sub('\[(\d+)\]', replace_index, line),
    else:
      # Wir sind im Fussnoten-Bereich
      m = re.match('^\[(\d+)\] (.*)', line)
      if m:
        idx=int(m.group(1))
        fndir[fnmap[idx]] = m.group(2)
        del fnmap[idx]  # wichtig fuer Memory-Verbrauch!
# Jetzt geben wir die Fussnoten aus
print "\nFussnoten:"
for i in range(1,len(fndir) + 1):
  if i in fndir:
    print "[%d] %s" % (i,fndir[i])
  else:
    print "[%d] <NOT AVAILABLE>" % i
