#!/usr/bin/perl -w use strict; $|++; my $msg = "Usage: $0 (escape|unescape)\n\n Escapes XMl entities and other special characters for use with Moses.\n\n"; die $msg unless scalar @ARGV == 1; if ($ARGV[0] eq "escape") { while () { $_ =~ s/\&/\&/g; # escape escape $_ =~ s/\|/\|/g; # factor separator $_ =~ s/\/\>/g; # xml $_ =~ s/\'/\'/g; # xml $_ =~ s/\"/\"/g; # xml $_ =~ s/\[/\[/g; # syntax non-terminal $_ =~ s/\]/\]/g; # syntax non-terminal print; } } elsif ($ARGV[0] eq "unescape") { while () { $_ =~ s/\|/\|/g; # factor separator $_ =~ s/\</\/g; # xml $_ =~ s/\'/\'/g; # xml $_ =~ s/\"/\"/g; # xml $_ =~ s/\[/\[/g; # syntax non-terminal $_ =~ s/\]/\]/g; # syntax non-terminal $_ =~ s/\&/\&/g; # escape escape print; } } else { die $msg; }