blob: 9dd6fbb478477e1f30d55c4e5fc5e0c54b6ca700 [file] [log] [blame]
#
# 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 xercesc::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 "xercesc::";
}
print "$ch, ";
}
if($opt_x) {
print "xercesc::";
}
print "chNull };\n";