#!/usr/bin/perl

# derb muss raus
# (vulgär) muss raus
# einträg mit leerzeichen ohne klammern, dieser einzelne eintrag muss raus
# ; (...) wort; -> eintrag: raus
# taktil;Tast...;tastend : 3 punkte raus
# erstes zeichen klammer: dieser eintrag raus: (Zeit) verfließen;ablaufen;vergehen;verlaufen;vorbeigehen -> ablaufen;vergehen;verlaufen;vorbeigehen

open(RH,"<thesaurus.txt");

	while(<RH>){
		
		my $string	= $_;
		my $rstring;

		chomp;
		$strlen		= length $string;
		next if ( $strlen == 0 );

		
		if ( $string =~ /^\(/ ) {
			$rstring = &ReturnValidString($_, 1);
		} else {
			$rstring = &ReturnValidString($_, 2);
		};

		if ( length $rstring > 0 ) { # && $rstring !~ /\,{2,}/ ) {
		#	print "RETURN: $rstring\n";
			print "$rstring\n";
		};

	#	if ( $string !~ /,/g ) {
	#		$mainword = $string; 
	#	} else {
	#		
	#		$string =~ s/ , /,/ig; $string =~ s/ ,/,/ig; $string =~ s/, /,/ig;
	#		$string	=~ s/\s+/ /;
	#		if ( $string !~ /\w+\./ ) {
	#			print "$mainword,$string\n";
	#		};
	#
	#	}; 
		

	#	sleep 1;

	}; # while(<RH>){

close RH;


sub ReturnValidString(){

	my $string		= shift;
	my $modifier	= shift;
	my @split		= split(';', $string );
	my $rstring;

	if ( $modifier == 1 ) {			# klammer am anfang
		
		if ( $string =~ /^\(/ ) {	# erstes zeichen klammer: dieser eintrag raus: (Zeit) verfließen;ablaufen;vergehen;verlaufen;vorbeigehen -> ablaufen;vergehen;verlaufen;vorbeigehen

			my $string = "";
			my $count	= 0;

			foreach ( @split ) {
				$string .= $_ . "," if ( $count != 0);
				$count++;
			};

			$rstring = &ReturnValidString($string, 2);	# rekursiv funktion aufrufen
			
		}; # if ( $string =~ /^(/ ) {
			
	} elsif ( $modifier == 2 ) {	# restliches checken

		foreach ( @split ) {
			
			next if ( $_ =~ /derb/i );			# derb fliegt raus
			next if ( $_ =~ /\.{1,}/ );			# mehr als 1 punkt fliegt raus
			next if ( $_ =~ /\s/ );				# wörter mit leerzeichen löschen
			next if ( $_ =~ /^\(/ig );			# ; (...) wort; -> eintrag: raus

			# diese wörter in klammern löschen
			$_ =~ s/\(veraltet\)//ig;
			$_ =~ s/\(Symbol\)//ig;
			$_ =~ s/\(umgangssprachlich\)//ig;
			$_ =~ s/\(fachsprachlich\)//ig;
			$_ =~ s/\(in Anzeigen\)//ig;
			$_ =~ s/\(schweiz\.\)//ig;
			$_ =~ s/\(österr\.\)//ig;
			$_ =~ s/\(regional\)//ig;
			$_ =~ s/\(vulgär\)//ig;
			$_ =~ s/\(Ostdeutschl\.\)//ig;

			$rstring .= $_ . "," if ( length $_ > 3 );	# schreibe, wenn wort größer als 3 zeichen ist

		}; # for ( @split ) {
		
	#	print "ORG: $string \n\tMOD2: $rstring\n";

	};  # if ( $modifier == 1 ) {


	$rstring =~ s/,,//;
	my @check = split(',', $rstring);

	if ( $#check >= 2 ) {
		$rstring =~ s/ , /,/ig; $rstring =~ s/ ,/,/ig; $rstring =~ s/, /,/ig;
		if ( reverse $rstring =~ /^\,/ ) {
			chop $rstring;
		};
		return $rstring;
	} else {
		return "";
	};

}; # sub ReturnValidString(){
