Index: p/src/tags/uam.tag2re
===================================================================
--- app/src/tags/uam.tag2re	(revision 20b4e44e7537762f6aceb72b039f6e8f8a50e201)
+++ 	(revision )
@@ -1,89 +1,0 @@
-#!/usr/bin/perl
-
-#package:	UAM Text Tools
-#component:	tags for utt
-#version:	1.0
-#author:	Tomasz Obrebski
-
-use strict;
-use locale;
-
-my $input = <>;
-chomp $input;
-
-our $pos_re    = qr/(?:[[:upper:]]+)/;
-our $attr_re   = qr/(?:[[:upper:]]+)/;
-our $val_re    = qr/(?:[[:lower:][:digit:]+?!*-]|<[^>\n]+>)/;
-our $av_re     = qr/(?:$attr_re$val_re+)/;
-our $avlist_re = qr/(?:$av_re+)/;
-our $cat_re    = qr/(?:$pos_re(?:\/$avlist_re)?)/;
-
-print pre($input);
-
-sub parse ($)
-{
-    my ($dstr)=@_;
-    my $avs={};
-    my ($cat,$attrlist) = split '/', $dstr;
-  ATTR:
-    while( $attrlist =~ /($attr_re)($val_re+)/g )
-    {
-	my ($attrstr,$valstr)=($1,$2);
-	my %vals;
-	while($valstr =~ /$val_re/g)
-	{
-	    my $val = $&;
-	    next ATTR if $val eq '*';
-	    $val =~ s/^<([[:lower:]])>$/$1/;
-	    $vals{$val}=1;
-	}
-	
-	$avs->{$attrstr} = \%vals; # dlaczego to dziala? %vals jest lokalne
-    }
-    [$cat, $avs];
-}
-
-sub unparse (\@)
-{
-    my ($cat,$avs)= @{shift @_};
-    my $dstr=$cat;
-    my @attrs = keys %$avs;
-    if(@attrs)
-    {
-	$dstr .= '/';
-	for my $attr ( sort @attrs )
-	{
-	    $dstr .= $attr . (join '', sort keys %{$avs->{$attr}});
-	}
-    }
-    $dstr;
-}
-
-sub canonize ($)
-{
-    unparse @{parse shift} ;
-}
-
-sub pre
-{
-    my $pos_res    = '[[:upper:]]+';
-    my $attr_res   = '[[:upper:]]+';
-    my $val_res    = '[[:lower:][:digit:]+?!*-]|<[^>\n[:cntrl:]]+>';
-    my $av_res     = "$attr_res($val_res)+";
-    my $avlist_res = "($av_res)+";
-
-    my $pat = canonize(shift);
-    my $ret;
-    my ($pos,$avlist) = split /\//, $pat;
-    $ret = $pos.'(\/';
-    while ($avlist =~ /($attr_res)(${val_res}+)/g)
-    {
-	my $attr = $1;
-	my $vals = $2;
-	my $vals = "($val_res)*(".join('|',($vals =~ /$val_res/g)).")($val_res)*";
-	$ret .= "($av_res)*$attr$vals";
-    }
-    $ret .= "($av_res)*)?";
-    return $ret;
-}
-
Index: auto/output/Makefile
===================================================================
--- auto/output/Makefile	(revision c7ecbc244d4b134bbdf0ad3b58fbe5bbf616fd7b)
+++ auto/output/Makefile	(revision a26cf421b204b6586fa67d9ae592df09abca8cc3)
@@ -97,5 +97,5 @@
 vpath %.texinfo ./doc
 
-PROGRAMS_SCRIPT = gph kot unfla grp mar ser kon rm12
+PROGRAMS_SCRIPT = gph kot unfla grp mar ser kon rm12 uam.tag2re
 PROGRAMS_EXEC = tok sen fla rs12
 PROGRAMS = \$(PROGRAMS_SCRIPT) \$(PROGRAMS_EXEC)
@@ -125,4 +125,7 @@
 GPH_PERL_FILES = gph.pl
 gph: \$(GPH_PERL_FILES)
+
+UAMTAG2RE_PERL_FILES = uam.tag2re.pl
+uam.tag2re: \$(UAMTAG2RE_PERL_FILES)
 
 KOT_PERL_FILES = kot.pl
Index: src/uam.tag2re.pl
===================================================================
--- src/uam.tag2re.pl	(revision a26cf421b204b6586fa67d9ae592df09abca8cc3)
+++ src/uam.tag2re.pl	(revision a26cf421b204b6586fa67d9ae592df09abca8cc3)
@@ -0,0 +1,89 @@
+#!/usr/bin/perl
+
+#package:	UAM Text Tools
+#component:	tags for utt
+#version:	1.0
+#author:	Tomasz Obrebski
+
+use strict;
+use locale;
+
+my $input = <>;
+chomp $input;
+
+our $pos_re    = qr/(?:[[:upper:]]+)/;
+our $attr_re   = qr/(?:[[:upper:]]+)/;
+our $val_re    = qr/(?:[[:lower:][:digit:]+?!*-]|<[^>\n]+>)/;
+our $av_re     = qr/(?:$attr_re$val_re+)/;
+our $avlist_re = qr/(?:$av_re+)/;
+our $cat_re    = qr/(?:$pos_re(?:\/$avlist_re)?)/;
+
+print pre($input);
+
+sub parse ($)
+{
+    my ($dstr)=@_;
+    my $avs={};
+    my ($cat,$attrlist) = split '/', $dstr;
+  ATTR:
+    while( $attrlist =~ /($attr_re)($val_re+)/g )
+    {
+	my ($attrstr,$valstr)=($1,$2);
+	my %vals;
+	while($valstr =~ /$val_re/g)
+	{
+	    my $val = $&;
+	    next ATTR if $val eq '*';
+	    $val =~ s/^<([[:lower:]])>$/$1/;
+	    $vals{$val}=1;
+	}
+	
+	$avs->{$attrstr} = \%vals; # dlaczego to dziala? %vals jest lokalne
+    }
+    [$cat, $avs];
+}
+
+sub unparse (\@)
+{
+    my ($cat,$avs)= @{shift @_};
+    my $dstr=$cat;
+    my @attrs = keys %$avs;
+    if(@attrs)
+    {
+	$dstr .= '/';
+	for my $attr ( sort @attrs )
+	{
+	    $dstr .= $attr . (join '', sort keys %{$avs->{$attr}});
+	}
+    }
+    $dstr;
+}
+
+sub canonize ($)
+{
+    unparse @{parse shift} ;
+}
+
+sub pre
+{
+    my $pos_res    = '[[:upper:]]+';
+    my $attr_res   = '[[:upper:]]+';
+    my $val_res    = '[[:lower:][:digit:]+?!*-]|<[^>\n[:cntrl:]]+>';
+    my $av_res     = "$attr_res($val_res)+";
+    my $avlist_res = "($av_res)+";
+
+    my $pat = canonize(shift);
+    my $ret;
+    my ($pos,$avlist) = split /\//, $pat;
+    $ret = $pos.'(\/';
+    while ($avlist =~ /($attr_res)(${val_res}+)/g)
+    {
+	my $attr = $1;
+	my $vals = $2;
+	my $vals = "($val_res)*(".join('|',($vals =~ /$val_res/g)).")($val_res)*";
+	$ret .= "($av_res)*$attr$vals";
+    }
+    $ret .= "($av_res)*)?";
+    return $ret;
+}
+
