Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:15:11

0001 /*
0002  * Licensed to the Apache Software Foundation (ASF) under one or more
0003  * contributor license agreements.  See the NOTICE file distributed with
0004  * this work for additional information regarding copyright ownership.
0005  * The ASF licenses this file to You under the Apache License, Version 2.0
0006  * (the "License"); you may not use this file except in compliance with
0007  * the License.  You may obtain a copy of the License at
0008  * 
0009  *      http://www.apache.org/licenses/LICENSE-2.0
0010  * 
0011  * Unless required by applicable law or agreed to in writing, software
0012  * distributed under the License is distributed on an "AS IS" BASIS,
0013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0014  * See the License for the specific language governing permissions and
0015  * limitations under the License.
0016  */
0017 
0018 /*
0019  * $Id$
0020  */
0021 
0022 #if !defined(XERCESC_INCLUDE_GUARD_UNICODERANGEFACTORY_HPP)
0023 #define XERCESC_INCLUDE_GUARD_UNICODERANGEFACTORY_HPP
0024 
0025 // ---------------------------------------------------------------------------
0026 //  Includes
0027 // ---------------------------------------------------------------------------
0028 #include <xercesc/util/regx/RangeFactory.hpp>
0029 #include <xercesc/util/regx/XMLUniCharacter.hpp>
0030 
0031 XERCES_CPP_NAMESPACE_BEGIN
0032 
0033 class XMLUTIL_EXPORT UnicodeRangeFactory: public RangeFactory {
0034 
0035 public:
0036     // -----------------------------------------------------------------------
0037     //  Public Constants
0038     // -----------------------------------------------------------------------
0039     // Unicode categories 
0040     enum {
0041         CHAR_LETTER      = XMLUniCharacter::FINAL_PUNCTUATION+1,
0042         CHAR_MARK,
0043         CHAR_NUMBER,
0044         CHAR_SEPARATOR,
0045         CHAR_OTHER,
0046         CHAR_PUNCTUATION,
0047         CHAR_SYMBOL,
0048         UNICATEGSIZE
0049     };
0050 
0051     // -----------------------------------------------------------------------
0052     //  Constructors and operators
0053     // -----------------------------------------------------------------------
0054     UnicodeRangeFactory();
0055     ~UnicodeRangeFactory();
0056 
0057     // -----------------------------------------------------------------------
0058     //  Initialization methods
0059     // -----------------------------------------------------------------------
0060     void initializeKeywordMap(RangeTokenMap *rangeTokMap = 0);
0061 
0062     // -----------------------------------------------------------------------
0063     //  Helper methods
0064     // -----------------------------------------------------------------------
0065     static unsigned short getUniCategory(const unsigned short type);
0066 
0067 protected:
0068     // -----------------------------------------------------------------------
0069     //  Private Helper methods
0070     // -----------------------------------------------------------------------
0071     void buildRanges(RangeTokenMap *rangeTokMap = 0);
0072 
0073 private:
0074     // -----------------------------------------------------------------------
0075     //  Unimplemented constructors and operators
0076     // -----------------------------------------------------------------------
0077     UnicodeRangeFactory(const UnicodeRangeFactory&);
0078     UnicodeRangeFactory& operator=(const UnicodeRangeFactory&);
0079 
0080 };
0081 
0082 XERCES_CPP_NAMESPACE_END
0083 
0084 #endif
0085 
0086 /**
0087   *    End file UnicodeRangeFactory.hpp
0088   */