blob: c10afd49dc80add5fb2a583f9b556fa9cd06d840 [file] [log] [blame]
#/**
# *******************************************************************************
# * Copyright (C) 2001-2002, International Business Machines Corporation and *
# * others. All Rights Reserved. *
# *******************************************************************************
# *
# * $Source: /xsrl/Nsvn/icu/icu4j/src/com/ibm/icu/dev/tool/translit/varsub.bat,v $
# * $Date: 2002/12/18 03:56:41 $
# * $Revision: 1.2 $
# *
# *******************************************************************************
# */
@rem = '--*-Perl-*--
@echo off
if "%OS%" == "Windows_NT" goto WinNT
perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9
goto endofperl
:WinNT
perl -x -S "%0" %*
if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl
if %errorlevel% == 9009 echo You do not have Perl in your PATH.
goto endofperl
@rem ';
#!perl
#line 14
# Usage: perl varsub.bat [-n|-nr] <infile> <outfile>
#
# Substitutes variables into rules and deletes variable definition
# statements. Variables that expand to UnicodeSets are NOT
# substituted.
#
# -n Afterwards, run native2ascii -encoding UTF8
# -nr Afterwards, run native2ascii -encoding UTF8 -reverse
$N2A = 0;
$IN = shift;
if ($IN =~ /^-n/) {
$N2A = 1;
$N2Aoption = ($IN eq '-nr') ? " -reverse " : "";
$IN = shift;
}
$OUT = shift;
if (!($IN && $OUT)) {
die "Usage: $0 [-n|-nr] <infile> <outfile>";
}
open(IN) or die "Can't open $IN: $!";
open(OUT, ">$OUT") or die "Can't open $OUT: $!";
while (<IN>) {
if (/^\s*\$([a-zA-Z0-9_]+)\s*=\s*([^;\#]+)\s*;\s*(\#.*)?$/) {
# This looks like a variable definition
my ($var, $def) = ($1, $2);
# Don't substitute UnicodeSet vars
if ($def !~ /^\[/) {
if (exists $VAR{$var}) {
print STDERR "Error: Duplicate definition of $var\n";
} else {
$VAR{$var} = $def;
}
next;
}
}
# Do variable substitutions, and output line
foreach my $var (keys %VAR) {
my $def = $VAR{$var};
s/\$$var\b/$def/g;
}
print OUT;
}
close(OUT);
close(IN);
if ($N2A) {
`native2ascii -encoding UTF8 $N2Aoption $OUT $OUT.native2ascii`;
unlink $OUT;
rename "$OUT.native2ascii", $OUT;
}
__END__
:endofperl