|
|
# # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # #
use vars qw($opt_h $opt_x); use Getopt::Std;
my %charMapping = ( ':', 'chColon', '\\', 'chBackSlash', '[', 'chOpenSquare', ']', 'chCloseSquare', '{', 'chOpenCurly', '}', 'chCloseCurly', '?', 'chQuestion', '(', 'chOpenParen', ')', 'chCloseParen', '/', 'chForwardSlash', '*', 'chAsterisk', '+', 'chPlus', '.', 'chPeriod', '-', 'chDash', '|', 'chPipe', '_', 'chUnderscore', ',', 'chComma', '&', 'chAmpersand', '0', 'chDigit_0', '1', 'chDigit_1', '2', 'chDigit_2', '3', 'chDigit_3', '4', 'chDigit_4', '5', 'chDigit_5', '6', 'chDigit_6', '7', 'chDigit_7', '8', 'chDigit_8', '9', 'chDigit_9');
# # usage: display usage message # sub usage() { print<<EOF; usage: $0 [ options ] word
Takes a word and produces a static XMLCh * definition for it.
Options: -h Displays this help message -x add the XERCES_CPP_NAMESPACE_QUALIFIER before each item EOF exit(1); }
# # main: #
getopts("hx");
if ($opt_h or @ARGV == 0) { usage(); }
my $word = $ARGV[0];
print "{ ";
while ($word=~s/^(.)//) { if (defined($charMapping{$1})) { $ch = $charMapping{$1}; } else { $ch = $1; if ($ch=~/[A-Za-z]/) { $ch = "chLatin_$ch"; } else { $ch = "UNKNOWN_CHAR_$ch"; } } if($opt_x) { print "XERCES_CPP_NAMESPACE_QUALIFIER "; } print "$ch, "; }
if($opt_x) { print "XERCES_CPP_NAMESPACE_QUALIFIER "; } print "chNull };\n";
|