gareth      2003/09/05 06:22:57

  Added:       c/scripts makeStringDefinition.pl
  Log:
  a script which makes the string definitions we use internally. eg 
./makeStringDefinition.pl lala  produces
  
  { chLatin_l, chLatin_a, chLatin_l, chLatin_a, chNull };
  
  Revision  Changes    Path
  1.1                  xml-xerces/c/scripts/makeStringDefinition.pl
  
  Index: makeStringDefinition.pl
  ===================================================================
  #!/usr/bin/perl -w
  #
  # The Apache Software License, Version 1.1
  #
  # Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
  # reserved.
  #
  # Redistribution and use in source and binary forms, with or without
  # modification, are permitted provided that the following conditions
  # are met:
  #
  # 1. Redistributions of source code must retain the above copyright
  #    notice, this list of conditions and the following disclaimer.
  #
  # 2. Redistributions in binary form must reproduce the above copyright
  #    notice, this list of conditions and the following disclaimer in
  #    the documentation and/or other materials provided with the
  #    distribution.
  #
  # 3. The end-user documentation included with the redistribution,
  #    if any, must include the following acknowledgment:
  #       "This product includes software developed by the
  #        Apache Software Foundation (http://www.apache.org/)."
  #    Alternately, this acknowledgment may appear in the software itself,
  #    if and wherever such third-party acknowledgments normally appear.
  #
  # 4. The names "Xerces" and "Apache Software Foundation" must
  #    not be used to endorse or promote products derived from this
  #    software without prior written permission. For written
  #    permission, please contact [EMAIL PROTECTED]
  #
  # 5. Products derived from this software may not be called "Apache",
  #    nor may "Apache" appear in their name, without prior written
  #    permission of the Apache Software Foundation.
  #
  # THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  # DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  # ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  # SUCH DAMAGE.
  # ====================================================================
  #
  # This software consists of voluntary contributions made by many
  # individuals on behalf of the Apache Software Foundation, and was
  # originally based on software copyright (c) 1999, International
  # Business Machines, Inc., http://www.ibm.com .  For more information
  # on the Apache Software Foundation, please see
  # <http://www.apache.org/>.
  #
  
  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";
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to