﻿#!/usr/bin/perl -w
use strict;
use warnings;
use utf8;
use open qw(:std :utf8);
use integer;


# Song_place-einfuegen.pl
# 2010-09-15
# Wolfgang Schmidle

# Vorsicht:
# markiert keine places in Überschriften



# text input

my @text;
while(<>) { push @text, $_; }


# go through the text

my $sID = "???";
my $inP = 0;
my $i = 0;


foreach (@text) {

	$i++; 
	
	# Hack für den Hack für small text
	next if m!<s>[()]</s>!;
	
	if (m!<p[ >]!) { $inP = 1; }
	if (m!</p>!) { $inP = 0; }
	next unless $inP;
	
	if (m!<s xml:id="([^"]+)">!) { $sID = $1; }
	
	if (m!\([^)]*$! || m!\([^)]*\(! 
		|| m!^[^(]*\)! || m!\)[^(]*\)!) {
			warn "Line $i: The ( and ) don't match: \n$_\n";
			next;
	}

	next unless m!\(!;

	next if m!"\("!;   # für den hack mit den <quote> für <sm>, sollte bald nicht mehr nötig sein
	
	if ($sID eq "???") { warn "Line $i: no <s> ID\n"; }

	my $n = 1;
	while (m!<place !g) { $n++; }   # sicherheitshalber
	
	while (s!\(!<place id="$sID-0$n">!) { $n++; }
	s!\)!</place>!g;
	
	if (m!</s>!) { $sID = "???"; }
	
}


# text output

print @text;


# TO DO:
# places in Tabellen-Zellen
