[GME-commit] GMESRC/GME/Include/xercesc/util/regx ASCIIRangeFactory.cpp, NONE, 1.1 BMPattern.cpp, NONE, 1.1 BlockRangeFactory.cpp, NONE, 1.1 CharToken.cpp, NONE, 1.1 ClosureToken.cpp, NONE, 1.1 ConcatToken.cpp, NONE, 1.1 ConditionToken.cpp, NONE, 1.1 Makefile.in, NONE, 1.1 Match.cpp, NONE, 1.1 ModifierToken.cpp, NONE, 1.1 Op.cpp, NONE, 1.1 OpFactory.cpp, NONE, 1.1 ParenToken.cpp, NONE, 1.1 ParserForXMLSchema.cpp, NONE, 1.1 RangeFactory.cpp, NONE, 1.1 RangeToken.cpp, NONE, 1.1 RangeTokenMap.cpp, NONE, 1.1 RegularExpression.cpp, NONE, 1.1 RegxParser.cpp, NONE, 1.1 RegxUtil.cpp, NONE, 1.1 StringToken.cpp, NONE, 1.1 Token.cpp, NONE, 1.1 TokenFactory.cpp, NONE, 1.1 UnicodeRangeFactory.cpp, NONE, 1.1 UnionToken.cpp, NONE, 1.1 XMLRangeFactory.cpp, NONE, 1.1 XMLUniCharacter.cpp, NONE, 1.1 ASCIIRangeFactory.hpp, 1.1.1.1, 1.2 BMPattern.hpp, 1.1.1.1, 1.2 BlockRangeFactory.hpp, 1.1.1.1, 1.2 CharToken.hpp, 1.1.1.1, 1.2 ClosureToken.hpp, 1.1.1.1, 1.2 ConcatToken.hpp, 1.1.1.1, 1.2 ConditionToken.hpp, 1.1.1.1, 1.2 Match.hpp, 1.1.1.1, 1.2 ModifierToken.hpp, 1.1.1.1, 1.2 Op.hpp, 1.1.1.1, 1.2 OpFactory.hpp, 1.1.1.1, 1.2 ParenToken.hpp, 1.1.1.1, 1.2 ParserForXMLSchema.hpp, 1.1.1.1, 1.2 RangeFactory.hpp, 1.1.1.1, 1.2 RangeToken.hpp, 1.1.1.1, 1.2 RangeTokenMap.hpp, 1.1.1.1, 1.2 RegularExpression.hpp, 1.1.1.1, 1.2 RegxDefs.hpp, 1.1.1.1, 1.2 RegxParser.hpp, 1.1.1.1, 1.2 RegxUtil.hpp, 1.1.1.1, 1.2 StringToken.hpp, 1.1.1.1, 1.2 Token.hpp, 1.1.1.1, 1.2 TokenFactory.hpp, 1.1.1.1, 1.2 TokenInc.hpp, 1.1.1.1, 1.2 UniCharTable.hpp, 1.1.1.1, 1.2 UnicodeRangeFactory.hpp, 1.1.1.1, 1.2 UnionToken.hpp, 1.1.1.1, 1.2 XMLRangeFactory.hpp, 1.1.1.1, 1.2 XMLUniCharacter.hpp, 1.1.1.1, 1.2
Log messages of CVS commits
gme-commit at list.isis.vanderbilt.edu
Tue Feb 19 14:16:49 CST 2008
- Previous message: [GME-commit] GMESRC/GME/Include/xercesc/validators/datatype XMLCanRepGroup.hpp, NONE, 1.1 AbstractNumericFacetValidator.hpp, 1.1.1.1, 1.2 AbstractNumericValidator.hpp, 1.1.1.1, 1.2 AbstractStringValidator.hpp, 1.1.1.1, 1.2 AnySimpleTypeDatatypeValidator.hpp, 1.1.1.1, 1.2 AnyURIDatatypeValidator.hpp, 1.1.1.1, 1.2 Base64BinaryDatatypeValidator.hpp, 1.1.1.1, 1.2 BooleanDatatypeValidator.hpp, 1.1.1.1, 1.2 DatatypeValidator.hpp, 1.1.1.1, 1.2 DatatypeValidatorFactory.hpp, 1.1.1.1, 1.2 DateDatatypeValidator.hpp, 1.1.1.1, 1.2 DateTimeDatatypeValidator.hpp, 1.1.1.1, 1.2 DateTimeValidator.hpp, 1.1.1.1, 1.2 DayDatatypeValidator.hpp, 1.1.1.1, 1.2 DecimalDatatypeValidator.hpp, 1.1.1.1, 1.2 DoubleDatatypeValidator.hpp, 1.1.1.1, 1.2 DurationDatatypeValidator.hpp, 1.1.1.1, 1.2 ENTITYDatatypeValidator.hpp, 1.1.1.1, 1.2 FloatDatatypeValidator.hpp, 1.1.1.1, 1.2 HexBinaryDatatypeValidator.hpp, 1.1.1.1, 1.2 IDDatatypeValidator.hpp, 1.1.1.1, 1.2 IDREFDatatypeValidator.hpp, 1.1.1.1, 1.2 InvalidDatatypeFacetException.hpp, 1.1.1.1, 1.2 InvalidDataty peValueException.hpp, 1.1.1.1, 1.2 ListDatatypeValidator.hpp, 1.1.1.1, 1.2 MonthDatatypeValidator.hpp, 1.1.1.1, 1.2 MonthDayDatatypeValidator.hpp, 1.1.1.1, 1.2 NCNameDatatypeValidator.hpp, 1.1.1.1, 1.2 NOTATIONDatatypeValidator.hpp, 1.1.1.1, 1.2 NameDatatypeValidator.hpp, 1.1.1.1, 1.2 QNameDatatypeValidator.hpp, 1.1.1.1, 1.2 StringDatatypeValidator.hpp, 1.1.1.1, 1.2 TimeDatatypeValidator.hpp, 1.1.1.1, 1.2 UnionDatatypeValidator.hpp, 1.1.1.1, 1.2 YearDatatypeValidator.hpp, 1.1.1.1, 1.2 YearMonthDatatypeValidator.hpp, 1.1.1.1, 1.2
- Next message: [GME-commit] GMESRC/GME/Include/xercesc/dom/impl DOMAttrImpl.cpp, NONE, 1.1 DOMAttrImpl.hpp, NONE, 1.1 DOMAttrMapImpl.cpp, NONE, 1.1 DOMAttrMapImpl.hpp, NONE, 1.1 DOMAttrNSImpl.cpp, NONE, 1.1 DOMAttrNSImpl.hpp, NONE, 1.1 DOMCDATASectionImpl.cpp, NONE, 1.1 DOMCDATASectionImpl.hpp, NONE, 1.1 DOMCasts.hpp, NONE, 1.1 DOMCharacterDataImpl.cpp, NONE, 1.1 DOMCharacterDataImpl.hpp, NONE, 1.1 DOMChildNode.cpp, NONE, 1.1 DOMChildNode.hpp, NONE, 1.1 DOMCommentImpl.cpp, NONE, 1.1 DOMCommentImpl.hpp, NONE, 1.1 DOMConfigurationImpl.cpp, NONE, 1.1 DOMConfigurationImpl.hpp, NONE, 1.1 DOMDeepNodeListImpl.cpp, NONE, 1.1 DOMDeepNodeListImpl.hpp, NONE, 1.1 DOMDeepNodeListPool.c, NONE, 1.1 DOMDeepNodeListPool.hpp, NONE, 1.1 DOMDocumentFragmentImpl.cpp, NONE, 1.1 DOMDocumentFragmentImpl.hpp, NONE, 1.1 DOMDocumentImpl.cpp, NONE, 1.1 DOMDocumentImpl.hpp, NONE, 1.1 DOMDocumentTypeImpl.cpp, NONE, 1.1 DOMDocumentTypeImpl.hpp, NONE, 1.1 DOMElementImpl.cpp, NONE, 1.1 DOMElementImpl.hpp, NONE, 1.1 DOMElementNSImpl.cpp, NONE, 1.1 DOMElementNSImpl.hpp, NONE, 1.1 DOMEntity Impl.cpp, NONE, 1.1 DOMEntityImpl.hpp, NONE, 1.1 DOMEntityReferenceImpl.cpp, NONE, 1.1 DOMEntityReferenceImpl.hpp, NONE, 1.1 DOMErrorImpl.cpp, NONE, 1.1 DOMErrorImpl.hpp, NONE, 1.1 DOMImplementationImpl.cpp, NONE, 1.1 DOMImplementationImpl.hpp, NONE, 1.1 DOMImplementationRegistry.cpp, NONE, 1.1 DOMLocatorImpl.cpp, NONE, 1.1 DOMLocatorImpl.hpp, NONE, 1.1 DOMNamedNodeMapImpl.cpp, NONE, 1.1 DOMNamedNodeMapImpl.hpp, NONE, 1.1 DOMNodeIDMap.cpp, NONE, 1.1 DOMNodeIDMap.hpp, NONE, 1.1 DOMNodeImpl.cpp, NONE, 1.1 DOMNodeImpl.hpp, NONE, 1.1 DOMNodeIteratorImpl.cpp, NONE, 1.1 DOMNodeIteratorImpl.hpp, NONE, 1.1 DOMNodeListImpl.cpp, NONE, 1.1 DOMNodeListImpl.hpp, NONE, 1.1 DOMNodeVector.cpp, NONE, 1.1 DOMNodeVector.hpp, NONE, 1.1 DOMNormalizer.cpp, NONE, 1.1 DOMNormalizer.hpp, NONE, 1.1 DOMNotationImpl.cpp, NONE, 1.1 DOMNotationImpl.hpp, NONE, 1.1 DOMParentNode.cpp, NONE, 1.1 DOMParentNode.hpp, NONE, 1.1 DOMProcessingInstructionImpl.cpp, NONE, 1.1 DOMProcessingInstructionImpl.hpp, NONE, 1.1 DOMRangeImpl.cpp, NONE, 1.1 DOMRangeImpl.hpp, NONE, 1.1 DOMStri ngPool.cpp, NONE, 1.1 DOMStringPool.hpp, NONE, 1.1 DOMTextImpl.cpp, NONE, 1.1 DOMTextImpl.hpp, NONE, 1.1 DOMTreeWalkerImpl.cpp, NONE, 1.1 DOMTreeWalkerImpl.hpp, NONE, 1.1 DOMTypeInfoImpl.cpp, NONE, 1.1 DOMTypeInfoImpl.hpp, NONE, 1.1 DOMWriterImpl.cpp, NONE, 1.1 DOMWriterImpl.hpp, NONE, 1.1 Makefile.in, NONE, 1.1 XSDElementNSImpl.cpp, NONE, 1.1 XSDElementNSImpl.hpp, NONE, 1.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx
In directory escher:/tmp/cvs-serv26529/util/regx
Modified Files:
ASCIIRangeFactory.hpp BMPattern.hpp BlockRangeFactory.hpp
CharToken.hpp ClosureToken.hpp ConcatToken.hpp
ConditionToken.hpp Match.hpp ModifierToken.hpp Op.hpp
OpFactory.hpp ParenToken.hpp ParserForXMLSchema.hpp
RangeFactory.hpp RangeToken.hpp RangeTokenMap.hpp
RegularExpression.hpp RegxDefs.hpp RegxParser.hpp RegxUtil.hpp
StringToken.hpp Token.hpp TokenFactory.hpp TokenInc.hpp
UniCharTable.hpp UnicodeRangeFactory.hpp UnionToken.hpp
XMLRangeFactory.hpp XMLUniCharacter.hpp
Added Files:
ASCIIRangeFactory.cpp BMPattern.cpp BlockRangeFactory.cpp
CharToken.cpp ClosureToken.cpp ConcatToken.cpp
ConditionToken.cpp Makefile.in Match.cpp ModifierToken.cpp
Op.cpp OpFactory.cpp ParenToken.cpp ParserForXMLSchema.cpp
RangeFactory.cpp RangeToken.cpp RangeTokenMap.cpp
RegularExpression.cpp RegxParser.cpp RegxUtil.cpp
StringToken.cpp Token.cpp TokenFactory.cpp
UnicodeRangeFactory.cpp UnionToken.cpp XMLRangeFactory.cpp
XMLUniCharacter.cpp
Log Message:
Xerces2.7 includes checkin.
CVS User: Zoltan Molnar, ISIS (zolmol)
--- NEW FILE: RegxParser.cpp ---
/*
* Copyright 2003,2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: RegxParser.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
[...1356 lines suppressed...]
case chLatin_z:
ThrowXMLwithMemMgr(ParseException,XMLExcepts::Parser_Descape5, fMemoryManager);
} // end switch
return ch;
}
// ---------------------------------------------------------------------------
// RegxParser: Helper Methods
// ---------------------------------------------------------------------------
bool RegxParser::checkQuestion(const int off) {
return ((off < fStringLen) && fString[off] == chQuestion);
}
XERCES_CPP_NAMESPACE_END
/**
* End file RegxParser.cpp
*/
--- NEW FILE: RegxUtil.cpp ---
/*
* Copyright 2001,2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: RegxUtil.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/regx/RegxUtil.hpp>
#include <xercesc/util/XMLString.hpp>
XERCES_CPP_NAMESPACE_BEGIN
XMLCh* RegxUtil::decomposeToSurrogates(XMLInt32 ch,
MemoryManager* const manager) {
XMLCh* pszStr = (XMLCh*) manager->allocate(3 * sizeof(XMLCh));//new XMLCh[3];
decomposeToSurrogates(ch, pszStr[0], pszStr[1]);
pszStr[2] = chNull;
return pszStr;
}
XMLCh* RegxUtil::stripExtendedComment(const XMLCh* const expression,
MemoryManager* const manager) {
XMLCh* buffer = (manager) ? XMLString::replicate(expression, manager)
: XMLString::replicate(expression);
if (buffer)
{
const XMLCh* inPtr = expression;
XMLCh* outPtr = buffer;
while (*inPtr) {
XMLCh ch = *inPtr++;
if (ch == chFF || ch == chCR || ch == chLF
|| ch == chSpace || ch == chHTab) {
continue;
}
// Skips chracters between '#' and a line end.
if (ch == chPound) {
while (*inPtr) {
ch = *inPtr++;
if (ch == chLF || ch == chCR)
break;
}
continue;
}
if (ch == chBackSlash && *inPtr) {
if ((ch = *inPtr++) == chPound || ch == chHTab || ch == chLF
|| ch == chFF || ch == chCR || ch == chSpace) {
*outPtr++ = ch;
}
else { // Other escaped character.
*outPtr++ = chBackSlash;
*outPtr++ = ch;
}
}
else { // As is.
*outPtr++ = ch;
}
}
*outPtr = chNull; // null terminate
}
return buffer;
}
XERCES_CPP_NAMESPACE_END
/**
* End of file RegxUtil.cpp
*/
Index: BMPattern.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/BMPattern.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** BMPattern.hpp 14 Apr 2004 10:08:15 -0000 1.1.1.1
--- BMPattern.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001-2003 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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001-2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
Index: ConcatToken.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/ConcatToken.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** ConcatToken.hpp 14 Apr 2004 10:08:16 -0000 1.1.1.1
--- ConcatToken.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001 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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001,2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
***************
*** 74,78 ****
// Public Constructors and Destructor
// -----------------------------------------------------------------------
! ConcatToken(Token* const tok1, Token* const tok2);
~ConcatToken();
--- 34,39 ----
// Public Constructors and Destructor
// -----------------------------------------------------------------------
! ConcatToken(Token* const tok1, Token* const tok2
! , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
~ConcatToken();
--- NEW FILE: ParserForXMLSchema.cpp ---
/*
* Copyright 2001,2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: ParserForXMLSchema.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/regx/ParserForXMLSchema.hpp>
#include <xercesc/util/regx/TokenFactory.hpp>
#include <xercesc/util/regx/RangeToken.hpp>
#include <xercesc/util/regx/TokenInc.hpp>
#include <xercesc/util/regx/RegxDefs.hpp>
#include <xercesc/util/ParseException.hpp>
#include <xercesc/util/RuntimeException.hpp>
#include <xercesc/util/PlatformUtils.hpp>
XERCES_CPP_NAMESPACE_BEGIN
// ---------------------------------------------------------------------------
// ParserForXMLSchema: Constructors and Destructors
// ---------------------------------------------------------------------------
ParserForXMLSchema::ParserForXMLSchema(MemoryManager* const manager)
: RegxParser(manager)
{
}
ParserForXMLSchema::~ParserForXMLSchema() {
}
// ---------------------------------------------------------------------------
// ParserForXMLSchema: Parsing/Processing methods
// ---------------------------------------------------------------------------
Token* ParserForXMLSchema::processCaret() {
processNext();
return getTokenFactory()->createChar(chCaret);
}
Token* ParserForXMLSchema::processDollar() {
processNext();
return getTokenFactory()->createChar(chDollarSign);
}
Token* ParserForXMLSchema::processPlus(Token* const tok) {
processNext();
return getTokenFactory()->createConcat(tok,
getTokenFactory()->createClosure(tok));
}
Token* ParserForXMLSchema::processStar(Token* const tok) {
processNext();
return getTokenFactory()->createClosure(tok);
}
Token* ParserForXMLSchema::processQuestion(Token* const tok) {
processNext();
TokenFactory* tokFactory = getTokenFactory();
Token* retTok = tokFactory->createUnion();
retTok->addChild(tok, tokFactory);
retTok->addChild(tokFactory->createToken(Token::T_EMPTY), tokFactory);
return retTok;
}
Token* ParserForXMLSchema::processParen() {
processNext();
Token* retTok = getTokenFactory()->createParenthesis(parseRegx(true), 0);
if (getState() != REGX_T_RPAREN) {
ThrowXMLwithMemMgr(ParseException, XMLExcepts::Parser_Factor1, getMemoryManager());
}
processNext();
return retTok;
}
RangeToken* ParserForXMLSchema::parseCharacterClass(const bool) {
setParseContext(S_INBRACKETS);
processNext();
RangeToken* base = 0;
RangeToken* tok = 0;
bool isNRange = false;
if (getState() == REGX_T_CHAR && getCharData() == chCaret) {
isNRange = true;
processNext();
base = getTokenFactory()->createRange();
base->addRange(0, Token::UTF16_MAX);
tok = getTokenFactory()->createRange();
}
else {
tok= getTokenFactory()->createRange();
}
int type;
bool firstLoop = true;
bool wasDecoded;
while ( (type = getState()) != REGX_T_EOF) {
wasDecoded = false;
// single range | from-to-range | subtraction
if (type == REGX_T_CHAR && getCharData() == chCloseSquare && !firstLoop) {
if (isNRange) {
base->subtractRanges(tok);
tok = base;
}
break;
}
XMLInt32 ch = getCharData();
bool end = false;
if (type == REGX_T_BACKSOLIDUS) {
switch(ch) {
case chLatin_d:
case chLatin_D:
case chLatin_w:
case chLatin_W:
case chLatin_s:
case chLatin_S:
{
tok->mergeRanges(getTokenForShorthand(ch));
end = true;
}
break;
case chLatin_i:
case chLatin_I:
case chLatin_c:
case chLatin_C:
{
ch = processCInCharacterClass(tok, ch);
if (ch < 0) {
end = true;
}
}
break;
case chLatin_p:
case chLatin_P:
{
RangeToken* tok2 = processBacksolidus_pP(ch);
if (tok2 == 0) {
ThrowXMLwithMemMgr(ParseException,XMLExcepts::Parser_Atom5, getMemoryManager());
}
tok->mergeRanges(tok2);
end = true;
}
break;
case chDash:
wasDecoded = true;
// fall thru to default.
default:
ch = decodeEscaped();
}
} // end if REGX_T_BACKSOLIDUS
else if (type == REGX_T_XMLSCHEMA_CC_SUBTRACTION && !firstLoop) {
if (isNRange) {
base->subtractRanges(tok);
tok = base;
}
RangeToken* rangeTok = parseCharacterClass(false);
tok->subtractRanges(rangeTok);
if (getState() != REGX_T_CHAR || getCharData() != chCloseSquare) {
ThrowXMLwithMemMgr(ParseException,XMLExcepts::Parser_CC5, getMemoryManager());
}
break;
} // end if REGX_T_XMLSCHEMA...
processNext();
if (!end) {
if (type == REGX_T_CHAR
&& (ch == chOpenSquare
|| ch == chCloseSquare
|| (ch == chDash && getCharData() == chCloseSquare && firstLoop))) {
// if regex = [-] then invalid...
// '[', ']', '-' not allowed and should be esacaped
XMLCh chStr[] = { ch, chNull };
ThrowXMLwithMemMgr2(ParseException,XMLExcepts::Parser_CC6, chStr, chStr, getMemoryManager());
}
if (ch == chDash && getCharData() == chDash && getState() != REGX_T_BACKSOLIDUS && !wasDecoded) {
XMLCh chStr[] = { ch, chNull };
ThrowXMLwithMemMgr2(ParseException,XMLExcepts::Parser_CC6, chStr, chStr, getMemoryManager());
}
if (getState() != REGX_T_CHAR || getCharData() != chDash) {
tok->addRange(ch, ch);
}
else {
processNext();
if ((type = getState()) == REGX_T_EOF)
ThrowXMLwithMemMgr(ParseException,XMLExcepts::Parser_CC2, getMemoryManager());
if (type == REGX_T_CHAR && getCharData() == chCloseSquare) {
tok->addRange(ch, ch);
tok->addRange(chDash, chDash);
}
else if (type == REGX_T_XMLSCHEMA_CC_SUBTRACTION) {
static const XMLCh dashStr[] = { chDash, chNull};
ThrowXMLwithMemMgr2(ParseException, XMLExcepts::Parser_CC6, dashStr, dashStr, getMemoryManager());
}
else {
XMLInt32 rangeEnd = getCharData();
XMLCh rangeEndStr[] = { rangeEnd, chNull };
if (type == REGX_T_CHAR) {
if (rangeEnd == chOpenSquare
|| rangeEnd == chCloseSquare
|| rangeEnd == chDash)
// '[', ']', '-' not allowed and should be esacaped
ThrowXMLwithMemMgr2(ParseException, XMLExcepts::Parser_CC6, rangeEndStr, rangeEndStr, getMemoryManager());
}
else if (type == REGX_T_BACKSOLIDUS) {
rangeEnd = decodeEscaped();
}
processNext();
if (ch > rangeEnd) {
XMLCh chStr[] = { ch, chNull };
ThrowXMLwithMemMgr2(ParseException,XMLExcepts::Parser_Ope3, rangeEndStr, chStr, getMemoryManager());
}
tok->addRange(ch, rangeEnd);
}
}
}
firstLoop = false;
}
if (getState() == REGX_T_EOF)
ThrowXMLwithMemMgr(ParseException,XMLExcepts::Parser_CC2, getMemoryManager());
tok->sortRanges();
tok->compactRanges();
setParseContext(S_NORMAL);
processNext();
return tok;
}
XMLInt32 ParserForXMLSchema::processCInCharacterClass(RangeToken* const tok,
const XMLInt32 ch)
{
tok->mergeRanges(getTokenForShorthand(ch));
return -1;
}
Token* ParserForXMLSchema::processLook(const unsigned short) {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, getMemoryManager());
return 0; // for compilers that complain about no return value
}
Token* ParserForXMLSchema::processBacksolidus_A() {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, getMemoryManager());
return 0; // for compilers that complain about no return value
}
Token* ParserForXMLSchema::processBacksolidus_B() {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, getMemoryManager());
return 0; // for compilers that complain about no return value
}
Token* ParserForXMLSchema::processBacksolidus_b() {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, getMemoryManager());
return 0; // for compilers that complain about no return value
}
Token* ParserForXMLSchema::processBacksolidus_C() {
processNext();
return getTokenForShorthand(chLatin_C);
}
Token* ParserForXMLSchema::processBacksolidus_c() {
processNext();
return getTokenForShorthand(chLatin_c);
}
Token* ParserForXMLSchema::processBacksolidus_g() {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, getMemoryManager());
return 0; // for compilers that complain about no return value
}
Token* ParserForXMLSchema::processBacksolidus_gt() {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, getMemoryManager());
return 0; // for compilers that complain about no return value
}
Token* ParserForXMLSchema::processBacksolidus_I() {
processNext();
return getTokenForShorthand(chLatin_I);
}
Token* ParserForXMLSchema::processBacksolidus_i() {
processNext();
return getTokenForShorthand(chLatin_i);
}
Token* ParserForXMLSchema::processBacksolidus_lt() {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, getMemoryManager());
return 0; // for compilers that complain about no return value
}
Token* ParserForXMLSchema::processBacksolidus_X() {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, getMemoryManager());
return 0; // for compilers that complain about no return value
}
Token* ParserForXMLSchema::processBacksolidus_Z() {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, getMemoryManager());
return 0; // for compilers that complain about no return value
}
Token* ParserForXMLSchema::processBacksolidus_z() {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, getMemoryManager());
return 0; // for compilers that complain about no return value
}
Token* ParserForXMLSchema::processBackReference() {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, getMemoryManager());
return 0; // for compilers that complain about no return value
}
Token* ParserForXMLSchema::processCondition() {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, getMemoryManager());
return 0; // for compilers that complain about no return value
}
Token* ParserForXMLSchema::processIndependent() {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, getMemoryManager());
return 0; // for compilers that complain about no return value
}
Token* ParserForXMLSchema::processModifiers() {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, getMemoryManager());
return 0; // for compilers that complain about no return value
}
Token* ParserForXMLSchema::processParen2() {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, getMemoryManager());
return 0; // for compilers that complain about no return value
}
RangeToken* ParserForXMLSchema::parseSetOperations() {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, getMemoryManager());
return 0; // for compilers that complain about no return value
}
// ---------------------------------------------------------------------------
// ParserForXMLSchema: Getter methods
// ---------------------------------------------------------------------------
Token* ParserForXMLSchema::getTokenForShorthand(const XMLInt32 ch) {
switch(ch) {
case chLatin_d:
return getTokenFactory()->getRange(fgXMLDigit);
case chLatin_D:
return getTokenFactory()->getRange(fgXMLDigit, true);
case chLatin_w:
return getTokenFactory()->getRange(fgXMLWord);
case chLatin_W:
return getTokenFactory()->getRange(fgXMLWord, true);
case chLatin_s:
return getTokenFactory()->getRange(fgXMLSpace);
case chLatin_S:
return getTokenFactory()->getRange(fgXMLSpace, true);
case chLatin_c:
return getTokenFactory()->getRange(fgXMLNameChar);
case chLatin_C:
return getTokenFactory()->getRange(fgXMLNameChar, true);
case chLatin_i:
return getTokenFactory()->getRange(fgXMLInitialNameChar);
case chLatin_I:
return getTokenFactory()->getRange(fgXMLInitialNameChar, true);
}
return 0;
}
// ---------------------------------------------------------------------------
// ParserForXMLSchema: Helper methods
// ---------------------------------------------------------------------------
bool ParserForXMLSchema::checkQuestion(const int) {
return false;
}
XMLInt32 ParserForXMLSchema::decodeEscaped() {
if (getState() != REGX_T_BACKSOLIDUS)
ThrowXMLwithMemMgr(ParseException,XMLExcepts::Parser_Next1, getMemoryManager());
XMLInt32 ch = getCharData();
switch (ch) {
case chLatin_n:
ch = chLF;
break;
case chLatin_r:
ch = chCR;
break;
case chLatin_t:
ch = chHTab;
break;
case chBackSlash:
case chPipe:
case chPeriod:
case chCaret:
case chDash:
case chQuestion:
case chAsterisk:
case chPlus:
case chOpenCurly:
case chCloseCurly:
case chOpenParen:
case chCloseParen:
case chOpenSquare:
case chCloseSquare:
break;
default:
{
XMLCh chString[] = {chBackSlash, ch, chNull};
ThrowXMLwithMemMgr1(ParseException,XMLExcepts::Parser_Process2, chString, getMemoryManager());
}
}
return ch;
}
XERCES_CPP_NAMESPACE_END
/**
* End of file ParserForXMLSchema.cpp
*/
--- NEW FILE: Makefile.in ---
#
# Copyright 2001,2004 The Apache Software Foundation.
#
# Licensed 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.
#
#
#
# $Log: Makefile.in,v $
# Revision 1.1 2008/02/19 20:16:31 zolmol
# Xerces2.7 includes checkin.
#
# Revision 1.5 2004/09/08 13:56:47 peiyongz
# Apache License Version 2.0
#
# Revision 1.4 2004/07/09 16:26:49 peiyongz
# Build on HP-Itanium, aCC A.05.52
#
# Revision 1.3 2002/07/31 17:16:08 tng
# [Bug 6321] gmake error in regx/Makefile.in.
#
# Revision 1.2 2002/07/26 16:49:29 tng
# [Bug 2681] Can't build with gcc/g++ not named 'gcc'/'g++'. Patch from Jonathan Lennox.
#
# Revision 1.1.1.1 2002/02/01 22:22:29 peiyongz
# sane_include
#
# Revision 1.5 2001/07/06 17:12:09 tng
# Automatic build of single-threaded library. By Martin Kalen.
#
# Revision 1.4 2001/06/27 17:09:43 tng
# [Bug 1147] Headers install in wrong directory. By Murray Cumming.
#
# Revision 1.3 2001/05/11 13:26:42 tng
# Copyright update.
#
# Revision 1.2 2001/05/03 18:17:24 knoaman
# Some design changes:
# o Changed the TokenFactory from a single static instance, to a
# normal class. Each RegularExpression object will have its own
# instance of TokenFactory, and that instance will be passed to
# other classes that need to use a TokenFactory to create Token
# objects (with the exception of RangeTokenMap).
# o Added a new class RangeTokenMap to map a the different ranges
# in a given category to a specific RangeFactory object. In the old
# design RangeFactory had dual functionality (act as a Map, and as
# a factory for creating RangeToken(s)). The RangeTokenMap will
# have its own copy of the TokenFactory. There will be only one
# instance of the RangeTokenMap class, and that instance will be
# lazily deleted when XPlatformUtils::Terminate is called.
#
# Revision 1.1 2001/03/02 19:26:43 knoaman
# Schema: Regular expression handling part II
#
# Revision 1.0 2001/01/26 19:50:51 knoaman
#
#
PLATFORM = @platform@
CC = @cc@
CXX = @cxx@
CXXVER = @cxxver@
GCC = @GCC@
GXX = @GXX@
CXXFLAGS = @cxxflags@
CFLAGS = @cflags@
PREFIX = @prefix@
PREFIX_INCLUDE = @prefix_include@
LDFLAGS = @ldflags@
LIBS = @libs@
OSVER = @osver@
USELIBWWW = @uselibwww@
MESSAGELOADER = @messageloader@
TRANSCODER = @transcoder@
NETACCESSOR = @netaccessor@
THREADS = @threads@
MODULE = util
SUBMODULE = regx
include ../../Makefile.incl
CPP_PUBHEADERS = RegxDefs.hpp \
UniCharTable.hpp \
Op.hpp \
OpFactory.hpp \
BMPattern.hpp \
Match.hpp \
RegxUtil.hpp \
RangeToken.hpp \
Token.hpp \
CharToken.hpp \
ClosureToken.hpp \
ConcatToken.hpp \
ConditionToken.hpp \
ModifierToken.hpp \
ParenToken.hpp \
StringToken.hpp \
UnionToken.hpp \
TokenInc.hpp \
XMLUniCharacter.hpp \
RangeFactory.hpp \
XMLRangeFactory.hpp \
BlockRangeFactory.hpp \
UnicodeRangeFactory.hpp \
ASCIIRangeFactory.hpp \
RangeTokenMap.hpp \
TokenFactory.hpp \
RegxParser.hpp \
ParserForXMLSchema.hpp \
RegularExpression.hpp
CPP_OBJECTS = Op.$(TO) \
OpFactory.$(TO) \
BMPattern.$(TO) \
Match.$(TO) \
RegxUtil.$(TO) \
RangeToken.$(TO) \
Token.$(TO) \
CharToken.$(TO) \
ClosureToken.$(TO) \
ConcatToken.$(TO) \
ConditionToken.$(TO) \
ModifierToken.$(TO) \
ParenToken.$(TO) \
StringToken.$(TO) \
UnionToken.$(TO) \
XMLUniCharacter.$(TO) \
RangeFactory.$(TO) \
XMLRangeFactory.$(TO) \
BlockRangeFactory.$(TO) \
UnicodeRangeFactory.$(TO) \
ASCIIRangeFactory.$(TO) \
RangeTokenMap.$(TO) \
TokenFactory.$(TO) \
RegxParser.$(TO) \
ParserForXMLSchema.$(TO) \
RegularExpression.$(TO)
include ../Makefile.util.submodule
Index: BlockRangeFactory.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/BlockRangeFactory.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** BlockRangeFactory.hpp 14 Apr 2004 10:08:15 -0000 1.1.1.1
--- BlockRangeFactory.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001-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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001-2002,2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
***************
*** 81,85 ****
// Initialization methods
// -----------------------------------------------------------------------
! void initializeKeywordMap();
protected:
--- 41,45 ----
// Initialization methods
// -----------------------------------------------------------------------
! void initializeKeywordMap(RangeTokenMap *rangeTokMap = 0);
protected:
***************
*** 87,91 ****
// Private Helper methods
// -----------------------------------------------------------------------
! void buildRanges();
private:
--- 47,51 ----
// Private Helper methods
// -----------------------------------------------------------------------
! void buildRanges(RangeTokenMap *rangeTokMap = 0);
private:
***************
*** 95,101 ****
BlockRangeFactory(const BlockRangeFactory&);
BlockRangeFactory& operator=(const BlockRangeFactory&);
-
- bool fRangesCreated;
- bool fKeywordsInitialized;
};
--- 55,58 ----
--- NEW FILE: Op.cpp ---
/*
* Copyright 2001,2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: Op.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/regx/Op.hpp>
#include <xercesc/util/XMLString.hpp>
XERCES_CPP_NAMESPACE_BEGIN
// ---------------------------------------------------------------------------
// Op: Constructors and Destructors
// ---------------------------------------------------------------------------
Op::Op(const short type, MemoryManager* const manager)
: fMemoryManager(manager)
, fOpType(type)
, fNextOp(0)
{
}
// ---------------------------------------------------------------------------
// Op: Getter methods
// ---------------------------------------------------------------------------
int Op::getSize() const {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
return 0; // for compilers that complain about no return value
}
XMLInt32 Op::getData() const {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
return 0; // for compilers that complain about no return value
}
XMLInt32 Op::getData2() const {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
return 0; // for compilers that complain about no return value
}
int Op::getRefNo() const {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
return 0; // for compilers that complain about no return value
}
const Op* Op::elementAt(int) const {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
return 0; // for compilers that complain about no return value
}
const Op* Op::getChild() const {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
return 0; // for compilers that complain about no return value
}
const Op* Op::getConditionFlow() const {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
return 0; // for compilers that complain about no return value
}
const Op* Op::getYesFlow() const {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
return 0; // for compilers that complain about no return value
}
const Op* Op::getNoFlow() const {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
return 0; // for compilers that complain about no return value
}
const XMLCh* Op::getLiteral() const {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
return 0; // for compilers that complain about no return value
}
const Token* Op::getToken() const {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
return 0; // for compilers that complain about no return value
}
// ---------------------------------------------------------------------------
// CharOp: Constructors and Destuctors
// ---------------------------------------------------------------------------
CharOp::CharOp(const short type, const XMLInt32 charData
, MemoryManager* const manager)
: Op(type, manager)
, fCharData(charData) {
}
// ---------------------------------------------------------------------------
// CharOp: Getter methods
// ---------------------------------------------------------------------------
XMLInt32 CharOp::getData() const {
return fCharData;
}
// ---------------------------------------------------------------------------
// UnionOp: Constructors and Destuctors
// ---------------------------------------------------------------------------
UnionOp::UnionOp(const short type, const int size, MemoryManager* const manager)
: Op(type, manager)
, fBranches(new (manager) RefVectorOf<Op> (size, false, manager)) {
}
// ---------------------------------------------------------------------------
// UnionOp: Getter/Setter methods
// ---------------------------------------------------------------------------
int UnionOp::getSize() const {
return fBranches->size();
}
const Op* UnionOp::elementAt(int index) const {
return fBranches->elementAt(index);
}
void UnionOp::addElement(Op* const op) {
fBranches->addElement(op);
}
// ---------------------------------------------------------------------------
// ChildOp: Constructors and Destuctors
// ---------------------------------------------------------------------------
ChildOp::ChildOp(const short type, MemoryManager* const manager)
: Op(type, manager)
, fChild(0) {
}
// ---------------------------------------------------------------------------
// ChildOp: Getter/Setter methods
// ---------------------------------------------------------------------------
const Op* ChildOp::getChild() const {
return fChild;
}
void ChildOp::setChild(const Op* const child) {
fChild = child;
}
// ---------------------------------------------------------------------------
// ModifierOp: Constructors and Destuctors
// ---------------------------------------------------------------------------
ModifierOp::ModifierOp(const short type, const XMLInt32 v1, const XMLInt32 v2
, MemoryManager* const manager)
: ChildOp(type, manager)
, fVal1(v1)
, fVal2(v2) {
}
// ---------------------------------------------------------------------------
// ModifierOp: Getter methods
// ---------------------------------------------------------------------------
XMLInt32 ModifierOp::getData() const {
return fVal1;
}
XMLInt32 ModifierOp::getData2() const {
return fVal2;
}
// ---------------------------------------------------------------------------
// RangeOp: Constructors and Destuctors
// ---------------------------------------------------------------------------
RangeOp::RangeOp(const short type, const Token* const token, MemoryManager* const manager)
: Op (type, manager)
, fToken(token) {
}
// ---------------------------------------------------------------------------
// RangeOp: Getter methods
// ---------------------------------------------------------------------------
const Token* RangeOp::getToken() const {
return fToken;
}
// ---------------------------------------------------------------------------
// StringOp: Constructors and Destuctors
// ---------------------------------------------------------------------------
StringOp::StringOp(const short type, const XMLCh* const literal
, MemoryManager* const manager)
: Op (type, manager)
, fLiteral(XMLString::replicate(literal, manager)) {
}
// ---------------------------------------------------------------------------
// StringOp: Getter methods
// ---------------------------------------------------------------------------
const XMLCh* StringOp::getLiteral() const {
return fLiteral;
}
// ---------------------------------------------------------------------------
// ConditionOp: Constructors and Destuctors
// ---------------------------------------------------------------------------
ConditionOp::ConditionOp(const short type, const int refNo,
const Op* const condFlow, const Op* const yesFlow,
const Op* const noFlow, MemoryManager* const manager)
: Op (type, manager)
, fRefNo(refNo)
, fConditionOp(condFlow)
, fYesOp(yesFlow)
, fNoOp(noFlow) {
}
// ---------------------------------------------------------------------------
// ConditionOp: Getter methods
// ---------------------------------------------------------------------------
int ConditionOp::getRefNo() const {
return fRefNo;
}
const Op* ConditionOp::getConditionFlow() const {
return fConditionOp;
}
const Op* ConditionOp::getYesFlow() const {
return fYesOp;
}
const Op* ConditionOp::getNoFlow() const {
return fNoOp;
}
XERCES_CPP_NAMESPACE_END
/**
* End file Op.cpp
*/
Index: RangeTokenMap.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/RangeTokenMap.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** RangeTokenMap.hpp 14 Apr 2004 10:08:16 -0000 1.1.1.1
--- RangeTokenMap.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001-2003 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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001-2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
***************
*** 148,152 ****
// Constructor and destructors
// -----------------------------------------------------------------------
! RangeTokenMap();
~RangeTokenMap();
--- 108,112 ----
// Constructor and destructors
// -----------------------------------------------------------------------
! RangeTokenMap(MemoryManager* manager);
~RangeTokenMap();
***************
*** 179,184 ****
* objects.
*/
! void initializeRegistry();
! friend class TokenFactory;
// -----------------------------------------------------------------------
--- 139,146 ----
* objects.
*/
! void initializeRegistry();
! void buildTokenRanges();
! void cleanUp();
! friend class TokenFactory;
// -----------------------------------------------------------------------
***************
*** 202,207 ****
// fMutex
// A mutex object for synchronization
! // -----------------------------------------------------------------------
! bool fRegistryInitialized;
RefHashTableOf<RangeTokenElemMap>* fTokenRegistry;
RefHashTableOf<RangeFactory>* fRangeMap;
--- 164,168 ----
// fMutex
// A mutex object for synchronization
! // -----------------------------------------------------------------------
RefHashTableOf<RangeTokenElemMap>* fTokenRegistry;
RefHashTableOf<RangeFactory>* fRangeMap;
***************
*** 210,213 ****
--- 171,176 ----
XMLMutex fMutex;
static RangeTokenMap* fInstance;
+
+ friend class XMLInitializer;
};
--- NEW FILE: ConditionToken.cpp ---
/*
* Copyright 2001,2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: ConditionToken.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/regx/ConditionToken.hpp>
XERCES_CPP_NAMESPACE_BEGIN
// ---------------------------------------------------------------------------
// ConditionToken: Constructors and Destructors
// ---------------------------------------------------------------------------
ConditionToken::ConditionToken(const unsigned int refNo, Token* const condTok,
Token* const yesTok, Token* const noTok, MemoryManager* const manager)
: Token(Token::T_CONDITION, manager)
, fRefNo(refNo)
, fConditionToken(condTok)
, fYesToken(yesTok)
, fNoToken(noTok)
{
}
ConditionToken::~ConditionToken() {
}
XERCES_CPP_NAMESPACE_END
/**
* End of file ConditionToken.cpp
*/
Index: Match.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/Match.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** Match.hpp 14 Apr 2004 10:08:16 -0000 1.1.1.1
--- Match.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001 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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001,2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
***************
*** 113,123 ****
// -----------------------------------------------------------------------
! // Private data members
! //
! // fNoGroups
! // Represents no of regular expression groups
//
! // fStartPositions
! // Array of start positions in the target text matched to specific
// regular expression group
//
--- 73,83 ----
// -----------------------------------------------------------------------
! // Private data members
! //
! // fNoGroups
! // Represents no of regular expression groups
//
! // fStartPositions
! // Array of start positions in the target text matched to specific
// regular expression group
//
***************
*** 128,132 ****
// fPositionsSize
// Actual size of Start/EndPositions array.
! // -----------------------------------------------------------------------
int fNoGroups;
int fPositionsSize;
--- 88,92 ----
// fPositionsSize
// Actual size of Start/EndPositions array.
! // -----------------------------------------------------------------------
int fNoGroups;
int fPositionsSize;
***************
*** 146,150 ****
if (fNoGroups < 0)
! ThrowXML(RuntimeException, XMLExcepts::Regex_Result_Not_Set);
return fNoGroups;
--- 106,110 ----
if (fNoGroups < 0)
! ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_Result_Not_Set, fMemoryManager);
return fNoGroups;
***************
*** 154,161 ****
if (!fStartPositions)
! ThrowXML(RuntimeException, XMLExcepts::Regex_Result_Not_Set);
if (index < 0 || fNoGroups <= index)
! ThrowXML(ArrayIndexOutOfBoundsException, XMLExcepts::Array_BadIndex);
return fStartPositions[index];
--- 114,121 ----
if (!fStartPositions)
! ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_Result_Not_Set, fMemoryManager);
if (index < 0 || fNoGroups <= index)
! ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Array_BadIndex, fMemoryManager);
return fStartPositions[index];
***************
*** 165,172 ****
if (!fEndPositions)
! ThrowXML(RuntimeException, XMLExcepts::Regex_Result_Not_Set);
if (index < 0 || fNoGroups <= index)
! ThrowXML(ArrayIndexOutOfBoundsException, XMLExcepts::Array_BadIndex);
return fEndPositions[index];
--- 125,132 ----
if (!fEndPositions)
! ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_Result_Not_Set, fMemoryManager);
if (index < 0 || fNoGroups <= index)
! ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Array_BadIndex, fMemoryManager);
return fEndPositions[index];
***************
*** 179,186 ****
if (!fStartPositions)
! ThrowXML(RuntimeException, XMLExcepts::Regex_Result_Not_Set);
if (index < 0 || fNoGroups <= index)
! ThrowXML(ArrayIndexOutOfBoundsException, XMLExcepts::Array_BadIndex);
fStartPositions[index] = value;
--- 139,146 ----
if (!fStartPositions)
! ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_Result_Not_Set, fMemoryManager);
if (index < 0 || fNoGroups <= index)
! ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Array_BadIndex, fMemoryManager);
fStartPositions[index] = value;
***************
*** 190,197 ****
if (!fEndPositions)
! ThrowXML(RuntimeException, XMLExcepts::Regex_Result_Not_Set);
if (index < 0 || fNoGroups <= index)
! ThrowXML(ArrayIndexOutOfBoundsException, XMLExcepts::Array_BadIndex);
fEndPositions[index] = value;
--- 150,157 ----
if (!fEndPositions)
! ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_Result_Not_Set, fMemoryManager);
if (index < 0 || fNoGroups <= index)
! ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException, XMLExcepts::Array_BadIndex, fMemoryManager);
fEndPositions[index] = value;
--- NEW FILE: ConcatToken.cpp ---
/*
* Copyright 2001,2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: ConcatToken.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/regx/ConcatToken.hpp>
XERCES_CPP_NAMESPACE_BEGIN
// ---------------------------------------------------------------------------
// Token: Constructors and Destructors
// ---------------------------------------------------------------------------
ConcatToken::ConcatToken(Token* const tok1, Token* const tok2, MemoryManager* const manager)
: Token(Token::T_CONCAT, manager)
, fChild1(tok1)
, fChild2(tok2)
{
}
ConcatToken::~ConcatToken() {
}
XERCES_CPP_NAMESPACE_END
/**
* End of file ConcatToken.cpp
*/
--- NEW FILE: BMPattern.cpp ---
/*
* Copyright 2001,2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: BMPattern.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/regx/BMPattern.hpp>
#include <xercesc/util/XMLString.hpp>
#include <xercesc/util/Janitor.hpp>
#include <xercesc/framework/MemoryManager.hpp>
#include <xercesc/util/OutOfMemoryException.hpp>
XERCES_CPP_NAMESPACE_BEGIN
// ---------------------------------------------------------------------------
// BMPattern: Constructors
// ---------------------------------------------------------------------------
typedef JanitorMemFunCall<BMPattern> CleanupType;
BMPattern::BMPattern( const XMLCh* const pattern
, bool ignoreCase
, MemoryManager* const manager) :
fIgnoreCase(ignoreCase)
, fShiftTableLen(256)
, fShiftTable(0)
, fPattern(0)
, fUppercasePattern(0)
, fMemoryManager(manager)
{
CleanupType cleanup(this, &BMPattern::cleanUp);
try {
fPattern = XMLString::replicate(pattern, fMemoryManager);
initialize();
}
catch(const OutOfMemoryException&)
{
cleanup.release();
throw;
}
cleanup.release();
}
BMPattern::BMPattern( const XMLCh* const pattern
, int tableSize
, bool ignoreCase
, MemoryManager* const manager) :
fIgnoreCase(ignoreCase)
, fShiftTableLen(tableSize)
, fShiftTable(0)
, fPattern(0)
, fUppercasePattern(0)
, fMemoryManager(manager)
{
CleanupType cleanup(this, &BMPattern::cleanUp);
try {
fPattern = XMLString::replicate(pattern, fMemoryManager);
initialize();
}
catch(const OutOfMemoryException&)
{
cleanup.release();
throw;
}
cleanup.release();
}
BMPattern::~BMPattern() {
cleanUp();
}
// ---------------------------------------------------------------------------
// BMPattern: matches methods
// ---------------------------------------------------------------------------
int BMPattern::matches(const XMLCh* const content, int start, int limit) {
const unsigned int patternLen = XMLString::stringLen(fPattern);
// Uppercase Content
XMLCh* ucContent = 0;
if (patternLen == 0)
return start;
if (fIgnoreCase) {
ucContent = XMLString::replicate(content, fMemoryManager);
XMLString::upperCase(ucContent);
}
ArrayJanitor<XMLCh> janUCContent(ucContent, fMemoryManager);
int index = start + patternLen;
while (index <= limit) {
int patternIndex = patternLen;
int nIndex = index + 1;
XMLCh ch = 0;
while (patternIndex > 0) {
ch = content[--index];
if (ch != fPattern[--patternIndex]) {
// No match, so we will break. But first we have
// to check the ignore case flag. If it is set, then
// we try to match with the case ignored
if (!fIgnoreCase ||
(fUppercasePattern[patternIndex] != ucContent[index]))
break;
}
if (patternIndex == 0)
return index;
}
index += fShiftTable[ch % fShiftTableLen] + 1;
if (index < nIndex)
index = nIndex;
}
return -1;
}
// ---------------------------------------------------------------------------
// BMPattern: private helpers methods
// ---------------------------------------------------------------------------
void BMPattern::initialize() {
const unsigned int patternLen = XMLString::stringLen(fPattern);
XMLCh* lowercasePattern = 0;
fShiftTable = (int*) fMemoryManager->allocate(fShiftTableLen*sizeof(int)); //new int[fShiftTableLen];
if (fIgnoreCase) {
fUppercasePattern = XMLString::replicate(fPattern, fMemoryManager);
lowercasePattern = XMLString::replicate(fPattern, fMemoryManager);
XMLString::upperCase(fUppercasePattern);
XMLString::lowerCase(lowercasePattern);
}
ArrayJanitor<XMLCh> janLowercase(lowercasePattern, fMemoryManager);
for (unsigned int i=0; i< fShiftTableLen; i++)
fShiftTable[i] = patternLen;
for (unsigned int k=0; k< patternLen; k++) {
XMLCh ch = fPattern[k];
int diff = patternLen - k - 1;
int index = ch % fShiftTableLen;
if (diff < fShiftTable[index])
fShiftTable[index] = diff;
if (fIgnoreCase) {
for (int j=0; j< 2; j++) {
ch = (j == 0) ? fUppercasePattern[k] : lowercasePattern[k];
index = ch % fShiftTableLen;
if (diff < fShiftTable[index])
fShiftTable[index] = diff;
}
}
}
}
// ---------------------------------------------------------------------------
// BMPattern: Cleanup
// ---------------------------------------------------------------------------
void BMPattern::cleanUp() {
fMemoryManager->deallocate(fPattern);//delete [] fPattern;
fMemoryManager->deallocate(fUppercasePattern);//delete [] fUppercasePattern;
fMemoryManager->deallocate(fShiftTable);
}
XERCES_CPP_NAMESPACE_END
/**
* End of file BMPattern.cpp
*/
Index: Token.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/Token.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** Token.hpp 14 Apr 2004 10:08:17 -0000 1.1.1.1
--- Token.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001-2003 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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001-2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
***************
*** 66,69 ****
--- 26,30 ----
// ---------------------------------------------------------------------------
#include <xercesc/util/RuntimeException.hpp>
+ #include <xercesc/util/PlatformUtils.hpp>
XERCES_CPP_NAMESPACE_BEGIN
***************
*** 82,86 ****
// Public Constructors and Destructor
// -----------------------------------------------------------------------
! Token(const unsigned short tokType);
virtual ~Token();
--- 43,49 ----
// Public Constructors and Destructor
// -----------------------------------------------------------------------
! Token(const unsigned short tokType
! , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
! );
virtual ~Token();
***************
*** 178,181 ****
--- 141,146 ----
// -----------------------------------------------------------------------
unsigned short fTokenType;
+ protected:
+ MemoryManager* const fMemoryManager;
};
***************
*** 255,259 ****
inline void Token::addChild(Token* const, TokenFactory* const) {
! ThrowXML(RuntimeException, XMLExcepts::Regex_NotSupported);
}
--- 220,224 ----
inline void Token::addChild(Token* const, TokenFactory* const) {
! ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
}
***************
*** 263,292 ****
inline void Token::addRange(const XMLInt32, const XMLInt32) {
! ThrowXML(RuntimeException, XMLExcepts::Regex_NotSupported);
}
inline void Token::mergeRanges(const Token *const) {
! ThrowXML(RuntimeException, XMLExcepts::Regex_NotSupported);
}
inline void Token::sortRanges() {
! ThrowXML(RuntimeException, XMLExcepts::Regex_NotSupported);
}
inline void Token::compactRanges() {
! ThrowXML(RuntimeException, XMLExcepts::Regex_NotSupported);
}
inline void Token::subtractRanges(RangeToken* const) {
! ThrowXML(RuntimeException, XMLExcepts::Regex_NotSupported);
}
inline void Token::intersectRanges(RangeToken* const) {
! ThrowXML(RuntimeException, XMLExcepts::Regex_NotSupported);
}
--- 228,257 ----
inline void Token::addRange(const XMLInt32, const XMLInt32) {
! ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
}
inline void Token::mergeRanges(const Token *const) {
! ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
}
inline void Token::sortRanges() {
! ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
}
inline void Token::compactRanges() {
! ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
}
inline void Token::subtractRanges(RangeToken* const) {
! ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
}
inline void Token::intersectRanges(RangeToken* const) {
! ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
}
--- NEW FILE: ClosureToken.cpp ---
/*
* Copyright 2001,2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: ClosureToken.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/regx/ClosureToken.hpp>
XERCES_CPP_NAMESPACE_BEGIN
// ---------------------------------------------------------------------------
// ClosureToken: Constructors and Destructors
// ---------------------------------------------------------------------------
ClosureToken::ClosureToken(const unsigned short tokType, Token* const tok, MemoryManager* const manager)
: Token(tokType, manager)
, fMin(-1)
, fMax(-1)
, fChild(tok)
{
}
ClosureToken::~ClosureToken() {
}
XERCES_CPP_NAMESPACE_END
/**
* End of file ClosureToken.cpp
*/
Index: XMLUniCharacter.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/XMLUniCharacter.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** XMLUniCharacter.hpp 14 Apr 2004 10:08:22 -0000 1.1.1.1
--- XMLUniCharacter.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001 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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001,2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
--- NEW FILE: ModifierToken.cpp ---
/*
* Copyright 2001,2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: ModifierToken.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/regx/ModifierToken.hpp>
XERCES_CPP_NAMESPACE_BEGIN
// ---------------------------------------------------------------------------
// ModifierToken: Constructors and Destructors
// ---------------------------------------------------------------------------
ModifierToken::ModifierToken(Token* const child, const int options,
const int mask, MemoryManager* const manager)
: Token(Token::T_MODIFIERGROUP, manager)
, fOptions(options)
, fOptionsMask(mask)
, fChild(child)
{
}
ModifierToken::~ModifierToken() {
}
XERCES_CPP_NAMESPACE_END
/**
* End of file ModifierToken.cpp
*/
--- NEW FILE: Match.cpp ---
/*
* Copyright 2001,2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: Match.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/regx/Match.hpp>
#include <xercesc/framework/MemoryManager.hpp>
XERCES_CPP_NAMESPACE_BEGIN
// ---------------------------------------------------------------------------
// Match: Constructors and Destructors
// ---------------------------------------------------------------------------
Match::Match(MemoryManager* const manager) :
fNoGroups(0)
, fPositionsSize(0)
, fStartPositions(0)
, fEndPositions(0)
, fMemoryManager(manager)
{
}
Match::Match(const Match& toCopy) :
XMemory(toCopy)
, fNoGroups(0)
, fPositionsSize(0)
, fStartPositions(0)
, fEndPositions(0)
, fMemoryManager(0)
{
initialize(toCopy);
}
Match& Match::operator=(const Match& toAssign) {
initialize(toAssign);
return *this;
}
Match::~Match() {
cleanUp();
}
// ---------------------------------------------------------------------------
// Match: Setter Methods
// ---------------------------------------------------------------------------
void Match::setNoGroups(const int n) {
if (fNoGroups <= 0 || fPositionsSize < n) {
cleanUp();
fPositionsSize = n;
fStartPositions = (int*) fMemoryManager->allocate(n * sizeof(int));//new int[n];
fEndPositions = (int*) fMemoryManager->allocate(n * sizeof(int));//new int[n];
}
fNoGroups = n;
for (int i=0; i< fPositionsSize; i++) {
fStartPositions[i] = -1;
fEndPositions[i] = -1;
}
}
// ---------------------------------------------------------------------------
// Match: private helpers methods
// ---------------------------------------------------------------------------
void Match::initialize(const Match &toCopy){
//do not copy over value of fPositionSize as it is irrelevant to the
//state of the Match
fMemoryManager = toCopy.fMemoryManager;
int toCopySize = toCopy.getNoGroups();
setNoGroups(toCopySize);
for (int i=0; i<toCopySize; i++){
setStartPos(i, toCopy.getStartPos(i));
setEndPos(i, toCopy.getEndPos(i));
}
}
void Match::cleanUp() {
fMemoryManager->deallocate(fStartPositions);//delete [] fStartPositions;
fMemoryManager->deallocate(fEndPositions);//delete [] fEndPositions;
fStartPositions = 0;
fEndPositions = 0;
}
XERCES_CPP_NAMESPACE_END
/**
* End of file Match.cpp
*/
Index: RegxUtil.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/RegxUtil.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** RegxUtil.hpp 14 Apr 2004 10:08:17 -0000 1.1.1.1
--- RegxUtil.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001 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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001,2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
***************
*** 85,88 ****
--- 45,50 ----
static bool isLowSurrogate(const XMLCh ch);
static bool isHighSurrogate(const XMLCh ch);
+ static void decomposeToSurrogates(XMLInt32 ch, XMLCh& high, XMLCh& low);
+
static XMLCh* decomposeToSurrogates(XMLInt32 ch,
MemoryManager* const manager);
***************
*** 117,120 ****
--- 79,89 ----
return (ch & 0xFC00) == 0xD800;
+ }
+
+ inline void RegxUtil::decomposeToSurrogates(XMLInt32 ch, XMLCh& high, XMLCh& low) {
+
+ ch -= 0x10000;
+ high = XMLCh((ch >> 10) + 0xD800);
+ low = XMLCh((ch & 0x03FF) + 0xDC00);
}
Index: CharToken.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/CharToken.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** CharToken.hpp 14 Apr 2004 10:08:16 -0000 1.1.1.1
--- CharToken.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001 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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001,2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
***************
*** 74,78 ****
// Public Constructors and Destructor
// -----------------------------------------------------------------------
! CharToken(const unsigned short tokType, const XMLInt32 ch);
~CharToken();
--- 34,39 ----
// Public Constructors and Destructor
// -----------------------------------------------------------------------
! CharToken(const unsigned short tokType, const XMLInt32 ch
! , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
~CharToken();
Index: TokenInc.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/TokenInc.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** TokenInc.hpp 14 Apr 2004 10:08:18 -0000 1.1.1.1
--- TokenInc.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001 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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001,2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
Index: RangeFactory.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/RangeFactory.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** RangeFactory.hpp 14 Apr 2004 10:08:16 -0000 1.1.1.1
--- RangeFactory.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001-2003 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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001-2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
***************
*** 69,72 ****
--- 29,37 ----
XERCES_CPP_NAMESPACE_BEGIN
+ // ---------------------------------------------------------------------------
+ // Forward Declaration
+ // ---------------------------------------------------------------------------
+ class RangeTokenMap;
+
class XMLUTIL_EXPORT RangeFactory : public XMemory
{
***************
*** 80,89 ****
// Initialization methods
// -----------------------------------------------------------------------
! virtual void initializeKeywordMap() = 0;
/*
* Used by children to build commonly used ranges
*/
! virtual void buildRanges() = 0;
protected:
--- 45,60 ----
// Initialization methods
// -----------------------------------------------------------------------
! /**
! * To maintain src code compatibility, we added a default parameter.
! * The caller is expected to pass in a valid RangeTokenMap instance.
! */
! virtual void initializeKeywordMap(RangeTokenMap *rangeTokMap = 0) = 0;
/*
* Used by children to build commonly used ranges
+ * To maintain src code compatibility, we added a default parameter.
+ * The caller is expected to pass in a valid RangeTokenMap instance.
*/
! virtual void buildRanges(RangeTokenMap *rangeTokMap = 0) = 0;
protected:
***************
*** 92,95 ****
--- 63,74 ----
// -----------------------------------------------------------------------
RangeFactory();
+
+ //friend class RangeTokenMap;
+
+ // -----------------------------------------------------------------------
+ // Data
+ // -----------------------------------------------------------------------
+ bool fRangesCreated;
+ bool fKeywordsInitialized;
private:
Index: OpFactory.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/OpFactory.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** OpFactory.hpp 14 Apr 2004 10:08:16 -0000 1.1.1.1
--- OpFactory.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001-2003 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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001-2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
--- NEW FILE: RangeTokenMap.cpp ---
/*
* Copyright 2001,2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: RangeTokenMap.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/regx/RangeTokenMap.hpp>
#include <xercesc/util/regx/RangeToken.hpp>
#include <xercesc/util/regx/RegxDefs.hpp>
#include <xercesc/util/regx/TokenFactory.hpp>
#include <xercesc/util/regx/XMLRangeFactory.hpp>
#include <xercesc/util/regx/ASCIIRangeFactory.hpp>
#include <xercesc/util/regx/UnicodeRangeFactory.hpp>
#include <xercesc/util/regx/BlockRangeFactory.hpp>
#include <xercesc/util/PlatformUtils.hpp>
#include <xercesc/util/XMLExceptMsgs.hpp>
#include <xercesc/util/XMLRegisterCleanup.hpp>
#include <xercesc/util/StringPool.hpp>
#include <xercesc/util/XMLInitializer.hpp>
#include <xercesc/util/OutOfMemoryException.hpp>
XERCES_CPP_NAMESPACE_BEGIN
// ---------------------------------------------------------------------------
// Local static data
// ---------------------------------------------------------------------------
static XMLMutex* sRangeTokMapMutex = 0;
static XMLRegisterCleanup rangeTokMapRegistryCleanup;
static XMLRegisterCleanup rangeTokMapInstanceCleanup;
// ---------------------------------------------------------------------------
// Local, static functions
// ---------------------------------------------------------------------------
static void reinitRangeTokMapMutex()
{
delete sRangeTokMapMutex;
sRangeTokMapMutex = 0;
}
static XMLMutex& getRangeTokMapMutex()
{
if (!sRangeTokMapMutex)
{
XMLMutexLock lock(XMLPlatformUtils::fgAtomicMutex);
// If we got here first, then register it and set the registered flag
if (!sRangeTokMapMutex)
{
sRangeTokMapMutex = new XMLMutex(XMLPlatformUtils::fgMemoryManager);
rangeTokMapRegistryCleanup.registerCleanup(reinitRangeTokMapMutex);
}
}
return *sRangeTokMapMutex;
}
// ---------------------------------------------------------------------------
// Static member data initialization
// ---------------------------------------------------------------------------
RangeTokenMap* RangeTokenMap::fInstance = 0;
void XMLInitializer::initializeRangeTokenMap()
{
RangeTokenMap::fInstance = new RangeTokenMap(XMLPlatformUtils::fgMemoryManager);
if (RangeTokenMap::fInstance)
{
rangeTokMapInstanceCleanup.registerCleanup(RangeTokenMap::reinitInstance);
RangeTokenMap::fInstance->buildTokenRanges();
}
}
// ---------------------------------------------------------------------------
// RangeTokenElemMap: Constructors and Destructor
// ---------------------------------------------------------------------------
RangeTokenElemMap::RangeTokenElemMap(unsigned int categoryId) :
fCategoryId(categoryId)
, fRange(0)
, fNRange(0)
{
}
RangeTokenElemMap::~RangeTokenElemMap()
{
}
// ---------------------------------------------------------------------------
// RangeTokenMap: Constructors and Destructor
// ---------------------------------------------------------------------------
typedef JanitorMemFunCall<RangeTokenMap> CleanupType;
RangeTokenMap::RangeTokenMap(MemoryManager* manager) :
fTokenRegistry(0)
, fRangeMap(0)
, fCategories(0)
, fTokenFactory(0)
, fMutex(manager)
{
CleanupType cleanup(this, &RangeTokenMap::cleanUp);
try {
fTokenRegistry = new (manager) RefHashTableOf<RangeTokenElemMap>(109, manager);
fRangeMap = new (manager) RefHashTableOf<RangeFactory>(29, manager);
fCategories = new (manager) XMLStringPool(109, manager);
fTokenFactory = new (manager) TokenFactory(manager);
initializeRegistry();
}
catch(const OutOfMemoryException&)
{
cleanup.release();
throw;
}
cleanup.release();
}
RangeTokenMap::~RangeTokenMap() {
cleanUp();
}
// ---------------------------------------------------------------------------
// RangeTokenMap: Getter methods
// ---------------------------------------------------------------------------
RangeToken* RangeTokenMap::getRange(const XMLCh* const keyword,
const bool complement) {
if (!fTokenRegistry->containsKey(keyword))
return 0;
RangeTokenElemMap* elemMap = fTokenRegistry->get(keyword);
RangeToken* rangeTok = elemMap->getRangeToken(complement);
if (!rangeTok)
{
XMLMutexLock lockInit(&fMutex);
// make sure that it was not created while we were locked
rangeTok = elemMap->getRangeToken(complement);
if (!rangeTok)
{
unsigned int categId = elemMap->getCategoryId();
const XMLCh* categName = fCategories->getValueForId(categId);
RangeFactory* rangeFactory = fRangeMap->get(categName);
if (rangeFactory)
{
rangeFactory->buildRanges(this);
rangeTok = elemMap->getRangeToken(complement);
// see if we are complementing an existing range
if (!rangeTok && complement)
{
rangeTok = elemMap->getRangeToken();
if (rangeTok)
{
rangeTok = (RangeToken*) RangeToken::complementRanges(rangeTok, fTokenFactory, fTokenRegistry->getMemoryManager());
elemMap->setRangeToken(rangeTok , complement);
}
}
}
}
}
return rangeTok;
}
// ---------------------------------------------------------------------------
// RangeTokenMap: Putter methods
// ---------------------------------------------------------------------------
void RangeTokenMap::addCategory(const XMLCh* const categoryName) {
fCategories->addOrFind(categoryName);
}
void RangeTokenMap::addRangeMap(const XMLCh* const categoryName,
RangeFactory* const rangeFactory) {
fRangeMap->put((void*)categoryName, rangeFactory);
}
void RangeTokenMap::addKeywordMap(const XMLCh* const keyword,
const XMLCh* const categoryName) {
unsigned int categId = fCategories->getId(categoryName);
if (categId == 0) {
ThrowXMLwithMemMgr1(RuntimeException, XMLExcepts::Regex_InvalidCategoryName, categoryName, fTokenRegistry->getMemoryManager());
}
if (fTokenRegistry->containsKey(keyword)) {
RangeTokenElemMap* elemMap = fTokenRegistry->get(keyword);
if (elemMap->getCategoryId() != categId)
elemMap->setCategoryId(categId);
return;
}
fTokenRegistry->put((void*) keyword, new RangeTokenElemMap(categId));
}
// ---------------------------------------------------------------------------
// RangeTokenMap: Setter methods
// ---------------------------------------------------------------------------
void RangeTokenMap::setRangeToken(const XMLCh* const keyword,
RangeToken* const tok,const bool complement) {
if (fTokenRegistry->containsKey(keyword)) {
fTokenRegistry->get(keyword)->setRangeToken(tok, complement);
}
else {
ThrowXMLwithMemMgr1(RuntimeException, XMLExcepts::Regex_KeywordNotFound, keyword, fTokenRegistry->getMemoryManager());
}
}
// ---------------------------------------------------------------------------
// RangeTokenMap: Initialization methods
// ---------------------------------------------------------------------------
void RangeTokenMap::initializeRegistry() {
// Add categories
fCategories->addOrFind(fgXMLCategory);
fCategories->addOrFind(fgASCIICategory);
fCategories->addOrFind(fgUnicodeCategory);
fCategories->addOrFind(fgBlockCategory);
// Add xml range factory
RangeFactory* rangeFact = new XMLRangeFactory();
fRangeMap->put((void*)fgXMLCategory, rangeFact);
rangeFact->initializeKeywordMap(this);
// Add ascii range factory
rangeFact = new ASCIIRangeFactory();
fRangeMap->put((void*)fgASCIICategory, rangeFact);
rangeFact->initializeKeywordMap(this);
// Add unicode range factory
rangeFact = new UnicodeRangeFactory();
fRangeMap->put((void*)fgUnicodeCategory, rangeFact);
rangeFact->initializeKeywordMap(this);
// Add block range factory
rangeFact = new BlockRangeFactory();
fRangeMap->put((void*)fgBlockCategory, rangeFact);
rangeFact->initializeKeywordMap(this);
}
void RangeTokenMap::buildTokenRanges()
{
// Build ranges */
RangeFactory* rangeFactory = fRangeMap->get(fgXMLCategory);
rangeFactory->buildRanges(this);
rangeFactory = fRangeMap->get(fgASCIICategory);
rangeFactory->buildRanges(this);
rangeFactory = fRangeMap->get(fgUnicodeCategory);
rangeFactory->buildRanges(this);
rangeFactory = fRangeMap->get(fgBlockCategory);
rangeFactory->buildRanges(this);
}
// ---------------------------------------------------------------------------
// RangeTokenMap: Instance methods
// ---------------------------------------------------------------------------
RangeTokenMap* RangeTokenMap::instance()
{
if (!fInstance)
{
XMLMutexLock lock(&getRangeTokMapMutex());
if (!fInstance)
{
fInstance = new RangeTokenMap(XMLPlatformUtils::fgMemoryManager);
rangeTokMapInstanceCleanup.registerCleanup(RangeTokenMap::reinitInstance);
}
}
return (fInstance);
}
// ---------------------------------------------------------------------------
// RangeTokenMap: helper methods
// ---------------------------------------------------------------------------
void RangeTokenMap::cleanUp()
{
delete fTokenRegistry;
fTokenRegistry = 0;
delete fRangeMap;
fRangeMap = 0;
delete fCategories;
fCategories = 0;
delete fTokenFactory;
fTokenFactory = 0;
}
// -----------------------------------------------------------------------
// Notification that lazy data has been deleted
// -----------------------------------------------------------------------
void RangeTokenMap::reinitInstance() {
delete fInstance;
fInstance = 0;
}
XERCES_CPP_NAMESPACE_END
/**
* End of file RangeTokenMap.cpp
*/
Index: RegularExpression.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/RegularExpression.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** RegularExpression.hpp 14 Apr 2004 10:08:17 -0000 1.1.1.1
--- RegularExpression.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001-2003 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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001-2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
***************
*** 68,72 ****
#include <xercesc/util/XMLString.hpp>
#include <xercesc/util/Janitor.hpp>
- #include <xercesc/util/Mutexes.hpp>
#include <xercesc/util/regx/Op.hpp>
#include <xercesc/util/regx/TokenFactory.hpp>
--- 28,31 ----
***************
*** 75,78 ****
--- 34,38 ----
#include <xercesc/util/regx/ConditionToken.hpp>
#include <xercesc/util/regx/OpFactory.hpp>
+ #include <xercesc/util/regx/RegxUtil.hpp>
XERCES_CPP_NAMESPACE_BEGIN
***************
*** 140,156 ****
// Matching methods
// -----------------------------------------------------------------------
! bool matches(const char* const matchString);
bool matches(const char* const matchString, const int start,
! const int end);
! bool matches(const char* const matchString, Match* const pMatch);
bool matches(const char* const matchString, const int start,
! const int end, Match* const pMatch);
! bool matches(const XMLCh* const matchString);
bool matches(const XMLCh* const matchString, const int start,
! const int end);
! bool matches(const XMLCh* const matchString, Match* const pMatch);
bool matches(const XMLCh* const matchString, const int start,
! const int end, Match* const pMatch);
// -----------------------------------------------------------------------
--- 100,116 ----
// Matching methods
// -----------------------------------------------------------------------
! bool matches(const char* const matchString, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
bool matches(const char* const matchString, const int start,
! const int end, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
! bool matches(const char* const matchString, Match* const pMatch, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
bool matches(const char* const matchString, const int start,
! const int end, Match* const pMatch, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
! bool matches(const XMLCh* const matchString, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
bool matches(const XMLCh* const matchString, const int start,
! const int end, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
! bool matches(const XMLCh* const matchString, Match* const pMatch, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
bool matches(const XMLCh* const matchString, const int start,
! const int end, Match* const pMatch, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
// -----------------------------------------------------------------------
***************
*** 180,183 ****
--- 140,154 ----
const int start, const int end);
+ // -----------------------------------------------------------------------
+ // Static initialize and cleanup methods
+ // -----------------------------------------------------------------------
+ static void
+ staticInitialize(MemoryManager* memoryManager);
+
+ static void
+ staticCleanup();
+
+ static bool isSet(const int options, const int flag);
+
private:
// -----------------------------------------------------------------------
***************
*** 194,211 ****
const int start, const int limit, const int noClosures);
bool nextCh(XMLInt32& ch, int& offset, const short direction);
!
! bool fInUse;
! bool fAdoptMatch;
! int fStart;
! int fLimit;
! int fLength; // fLimit - fStart
! int fSize;
! int fStringMaxLen;
! int* fOffsets;
! Match* fMatch;
! XMLCh* fString;
MemoryManager* fMemoryManager;
-
- friend class Janitor<Context>;
};
--- 165,179 ----
const int start, const int limit, const int noClosures);
bool nextCh(XMLInt32& ch, int& offset, const short direction);
!
! bool fAdoptMatch;
! int fStart;
! int fLimit;
! int fLength; // fLimit - fStart
! int fSize;
! int fStringMaxLen;
! int* fOffsets;
! Match* fMatch;
! const XMLCh* fString;
MemoryManager* fMemoryManager;
};
***************
*** 231,235 ****
void prepare();
int parseOptions(const XMLCh* const options);
- bool isSet(const int options, const int flag);
unsigned short getWordType(const XMLCh* const target, const int begin,
const int end, const int offset);
--- 199,202 ----
***************
*** 324,328 ****
int fNoClosures;
unsigned int fOptions;
- Context* fContext;
BMPattern* fBMPattern;
XMLCh* fPattern;
--- 291,294 ----
***************
*** 333,337 ****
static RangeToken* fWordRange;
OpFactory fOpFactory;
- XMLMutex fMutex;
TokenFactory* fTokenFactory;
MemoryManager* fMemoryManager;
--- 299,302 ----
***************
*** 339,342 ****
--- 304,316 ----
+
+ // -----------------------------------------------------------------------
+ // RegularExpression: Static initialize and cleanup methods
+ // -----------------------------------------------------------------------
+ inline void RegularExpression::staticCleanup()
+ {
+ fWordRange = 0;
+ }
+
// ---------------------------------------------------------------------------
// RegularExpression: Cleanup methods
***************
*** 345,350 ****
fMemoryManager->deallocate(fPattern);//delete [] fPattern;
! fMemoryManager->deallocate(fFixedString);//delete [] fFixedString;
! delete fContext;
delete fBMPattern;
delete fTokenFactory;
--- 319,323 ----
fMemoryManager->deallocate(fPattern);//delete [] fPattern;
! fMemoryManager->deallocate(fFixedString);//delete [] fFixedString;
delete fBMPattern;
delete fTokenFactory;
***************
*** 385,390 ****
case Token::T_MODIFIERGROUP:
ret = fOpFactory.createModifierOp(next, result,
! ((ModifierToken *) token)->getOptions(),
! ((ModifierToken *) token)->getOptionsMask());
break;
}
--- 358,363 ----
case Token::T_MODIFIERGROUP:
ret = fOpFactory.createModifierOp(next, result,
! ((const ModifierToken *) token)->getOptions(),
! ((const ModifierToken *) token)->getOptionsMask());
break;
}
***************
*** 452,456 ****
const bool reverse) {
! Token* condTok = ((ConditionToken*) token)->getConditionToken();
Token* yesTok = token->getChild(0);
Token* noTok = token->getChild(1);
--- 425,429 ----
const bool reverse) {
! Token* condTok = ((const ConditionToken*) token)->getConditionToken();
Token* yesTok = token->getChild(0);
Token* noTok = token->getChild(1);
***************
*** 587,591 ****
ret = match(context, op->elementAt(i), offset, direction);
! if (ret == context->fLimit)
return ret;
}
--- 560,564 ----
ret = match(context, op->elementAt(i), offset, direction);
! if (ret >= 0 && ret <= context->fLimit)
return ret;
}
***************
*** 634,645 ****
return ret;
}
-
- inline bool RegularExpression::matchIgnoreCase(const XMLInt32 ch1,
- const XMLInt32 ch2)
- {
-
- return (0==XMLString::compareNIString((XMLCh*)&ch1,(XMLCh*)&ch2, 1));
- }
-
XERCES_CPP_NAMESPACE_END
--- 607,610 ----
Index: UnionToken.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/UnionToken.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** UnionToken.hpp 14 Apr 2004 10:08:22 -0000 1.1.1.1
--- UnionToken.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001 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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001,2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
***************
*** 75,79 ****
// Public Constructors and Destructor
// -----------------------------------------------------------------------
! UnionToken(const unsigned short tokType);
~UnionToken();
--- 35,40 ----
// Public Constructors and Destructor
// -----------------------------------------------------------------------
! UnionToken(const unsigned short tokType
! , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
~UnionToken();
--- NEW FILE: RangeToken.cpp ---
/*
* Copyright 2001-2002,2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: RangeToken.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <assert.h>
#include <xercesc/util/regx/RangeToken.hpp>
#include <xercesc/util/regx/TokenFactory.hpp>
#include <xercesc/util/IllegalArgumentException.hpp>
#if defined(XML_USE_ICU_TRANSCODER) || defined (XML_USE_UNICONV390_TRANSCODER)
#include <unicode/uchar.h>
#else
#include <xercesc/util/XMLUniDefs.hpp>
#endif
XERCES_CPP_NAMESPACE_BEGIN
// ---------------------------------------------------------------------------
// Static member data initialization
// ---------------------------------------------------------------------------
const int RangeToken::MAPSIZE = 256;
const unsigned int RangeToken::INITIALSIZE = 16;
// ---------------------------------------------------------------------------
// RangeToken: Constructors and Destructors
// ---------------------------------------------------------------------------
RangeToken::RangeToken(const unsigned short tokType,
MemoryManager* const manager)
: Token(tokType, manager)
, fSorted(false)
, fCompacted(false)
, fNonMapIndex(0)
, fElemCount(0)
, fMaxCount(INITIALSIZE)
, fMap(0)
, fRanges(0)
, fCaseIToken(0)
, fMemoryManager(manager)
{
}
RangeToken::~RangeToken() {
fMemoryManager->deallocate(fMap);//delete [] fMap;
fMemoryManager->deallocate(fRanges);//delete[] fRanges;
}
// ---------------------------------------------------------------------------
// RangeToken: Getter methods
// ---------------------------------------------------------------------------
RangeToken* RangeToken::getCaseInsensitiveToken(TokenFactory* const tokFactory) {
if (fCaseIToken == 0 && tokFactory) {
bool isNRange = (getTokenType() == T_NRANGE) ? true : false;
RangeToken* lwrToken = tokFactory->createRange(isNRange);
for (unsigned int i = 0; i < fElemCount - 1; i += 2) {
for (XMLInt32 ch = fRanges[i]; ch <= fRanges[i + 1]; ++ch) {
#if defined(XML_USE_ICU_TRANSCODER) || defined (XML_USE_UNICONV390_TRANSCODER)
const XMLInt32 upperCh = u_toupper(ch);
if (upperCh != ch)
{
lwrToken->addRange(upperCh, upperCh);
}
const XMLInt32 lowerCh = u_tolower(ch);
if (lowerCh != ch)
{
lwrToken->addRange(lowerCh, lowerCh);
}
const XMLInt32 titleCh = u_totitle(ch);
if (titleCh != ch && titleCh != upperCh)
{
lwrToken->addRange(titleCh, titleCh);
}
#else
if (ch >= chLatin_A && ch <= chLatin_Z)
{
ch += chLatin_a - chLatin_A;
lwrToken->addRange(ch, ch);
}
else if (ch >= chLatin_a && ch <= chLatin_z)
{
ch -= chLatin_a - chLatin_A;
lwrToken->addRange(ch, ch);
}
#endif
}
}
lwrToken->mergeRanges(this);
lwrToken->compactRanges();
lwrToken->createMap();
fCaseIToken = lwrToken;
}
return fCaseIToken;
}
// ---------------------------------------------------------------------------
// RangeToken: Setter methods
// ---------------------------------------------------------------------------
void RangeToken::setRangeValues(XMLInt32* const rangeValues, const unsigned int count)
{
if (fRanges) {
if (fMap) {
fMemoryManager->deallocate(fMap);//delete [] fMap;
fMap = 0;
}
fElemCount = 0;
fMemoryManager->deallocate(fRanges);//delete [] fRanges;
fRanges = 0;
}
fElemCount = fMaxCount = count;
fRanges = rangeValues;
}
// ---------------------------------------------------------------------------
// RangeToken: Range manipulation methods
// ---------------------------------------------------------------------------
void RangeToken::addRange(const XMLInt32 start, const XMLInt32 end) {
XMLInt32 val1, val2;
fCaseIToken = 0;
if (start <= end) {
val1 = start;
val2 = end;
}
else {
val1 = end;
val2 = start;
}
if (fRanges == 0) {
fRanges = (XMLInt32*) fMemoryManager->allocate
(
fMaxCount * sizeof(XMLInt32)
);//new XMLInt32[fMaxCount];
fRanges[0] = val1;
fRanges[1] = val2;
fElemCount = 2;
fSorted = true;
}
else {
if (fRanges[fElemCount-1] + 1 == val1) {
fRanges[fElemCount-1] = val2;
return;
}
if (fElemCount + 2 >= fMaxCount) {
expand(2);
}
if (fRanges[fElemCount-1] >= val1)
fSorted = false;
fRanges[fElemCount++] = val1;
fRanges[fElemCount++] = val2;
if (!fSorted) {
sortRanges();
}
}
}
void RangeToken::sortRanges() {
if (fSorted || fRanges == 0)
return;
for (int i = fElemCount - 4; i >= 0; i -= 2) {
for (int j = 0; j <= i; j +=2) {
if (fRanges[j] > fRanges[j + 2]
|| (fRanges[j]==fRanges[j+2] && fRanges[j+1] > fRanges[j+3])) {
XMLInt32 tmpVal = fRanges[j+2];
fRanges[j+2] = fRanges[j];
fRanges[j] = tmpVal;
tmpVal = fRanges[j+3];
fRanges[j+3] = fRanges[j+1];
fRanges[j+1] = tmpVal;
}
}
}
fSorted = true;
}
void RangeToken::compactRanges() {
if (fCompacted || fRanges == 0 || fElemCount <= 2)
return;
unsigned int base = 0;
unsigned int target = 0;
while (target < fElemCount) {
if (base != target) {
fRanges[base] = fRanges[target++];
fRanges[base+1] = fRanges[target++];
}
else
target += 2;
XMLInt32 baseEnd = fRanges[base + 1];
while (target < fElemCount) {
XMLInt32 startRange = fRanges[target];
if (baseEnd + 1 < startRange)
break;
XMLInt32 endRange = fRanges[target + 1];
if (baseEnd + 1 == startRange || baseEnd < endRange) {
baseEnd = endRange;
fRanges[base+1] = baseEnd;
target += 2;
}
else if (baseEnd >= endRange) {
target += 2;
}
else {
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_CompactRangesError, fMemoryManager);
}
} // inner while
base += 2;
}
fElemCount = base;
fCompacted = true;
}
void RangeToken::mergeRanges(const Token *const tok) {
if (tok->getTokenType() != this->getTokenType())
ThrowXMLwithMemMgr(IllegalArgumentException, XMLExcepts::Regex_MergeRangesTypeMismatch, fMemoryManager);
RangeToken* rangeTok = (RangeToken *) tok;
if (rangeTok->fRanges == 0)
return;
fCaseIToken = 0;
sortRanges();
rangeTok->sortRanges();
if (fRanges == 0) {
fMaxCount = rangeTok->fMaxCount;
fRanges = (XMLInt32*) fMemoryManager->allocate
(
fMaxCount * sizeof(XMLInt32)
);//new XMLInt32[fMaxCount];
for (unsigned int index = 0; index < rangeTok->fElemCount; index++) {
fRanges[index] = rangeTok->fRanges[index];
}
fElemCount = rangeTok->fElemCount;
fSorted = true;
return;
}
unsigned int newMaxCount = (fElemCount + rangeTok->fElemCount >= fMaxCount)
? fMaxCount + rangeTok->fMaxCount : fMaxCount;
XMLInt32* result = (XMLInt32*) fMemoryManager->allocate
(
newMaxCount * sizeof(XMLInt32)
);//new XMLInt32[newMaxCount];
for (unsigned int i=0, j=0, k=0; i < fElemCount || j < rangeTok->fElemCount;) {
if (i >= fElemCount) {
for (int count = 0; count < 2; count++) {
result[k++] = rangeTok->fRanges[j++];
}
}
else if (j >= rangeTok->fElemCount) {
for (int count = 0; count < 2; count++) {
result[k++] = fRanges[i++];
}
}
else if (rangeTok->fRanges[j] < fRanges[i]
|| (rangeTok->fRanges[j] == fRanges[i]
&& rangeTok->fRanges[j+1] < fRanges[i+1])) {
for (int count = 0; count < 2; count++) {
result[k++] = rangeTok->fRanges[j++];
}
}
else {
for (int count = 0; count < 2; count++) {
result[k++] = fRanges[i++];
}
}
}
fMemoryManager->deallocate(fRanges);//delete [] fRanges;
fElemCount += rangeTok->fElemCount;
fRanges = result;
fMaxCount = newMaxCount;
}
void RangeToken::subtractRanges(RangeToken* const tok) {
if (fRanges == 0 || tok->fRanges == 0)
return;
if (tok->getTokenType() == T_NRANGE) {
intersectRanges(tok);
return;
}
fCaseIToken = 0;
sortRanges();
compactRanges();
tok->sortRanges();
tok->compactRanges();
unsigned int newMax = (fElemCount + tok->fElemCount >= fMaxCount)
? fMaxCount + tok->fMaxCount : fMaxCount;
XMLInt32* result = (XMLInt32*) fMemoryManager->allocate
(
newMax * sizeof(XMLInt32)
);//new XMLInt32[newMax];
unsigned int newElemCount = 0;
unsigned int srcCount = 0;
unsigned int subCount = 0;
while (srcCount < fElemCount && subCount < tok->fElemCount) {
XMLInt32 srcBegin = fRanges[srcCount];
XMLInt32 srcEnd = fRanges[srcCount + 1];
XMLInt32 subBegin = tok->fRanges[subCount];
XMLInt32 subEnd = tok->fRanges[subCount + 1];
if (srcEnd < subBegin) { // no overlap
result[newElemCount++] = fRanges[srcCount++];
result[newElemCount++] = fRanges[srcCount++];
}
else if (srcEnd >= subBegin && srcBegin <= subEnd) {
if (subBegin <= srcBegin && srcEnd <= subEnd) {
srcCount += 2;
}
else if (subBegin <= srcBegin) {
fRanges[srcCount] = subEnd + 1;
subCount += 2;
}
else if (srcEnd <= subEnd) {
result[newElemCount++] = srcBegin;
result[newElemCount++] = subBegin - 1;
srcCount += 2;
}
else {
result[newElemCount++] = srcBegin;
result[newElemCount++] = subBegin - 1;
fRanges[srcCount] = subEnd + 1;
subCount += 2;
}
}
else if (subEnd < srcBegin) {
subCount += 2;
}
else {
fMemoryManager->deallocate(result);//delete [] result;
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_SubtractRangesError, fMemoryManager);
}
} //end while
while (srcCount < fElemCount) {
result[newElemCount++] = fRanges[srcCount++];
result[newElemCount++] = fRanges[srcCount++];
}
fMemoryManager->deallocate(fRanges);//delete [] fRanges;
fRanges = result;
fElemCount = newElemCount;
fMaxCount = newMax;
}
/**
* Ignore whether 'tok' is NRANGE or not.
*/
void RangeToken::intersectRanges(RangeToken* const tok) {
if (fRanges == 0 || tok->fRanges == 0)
return;
fCaseIToken = 0;
sortRanges();
compactRanges();
tok->sortRanges();
tok->compactRanges();
unsigned int newMax = (fElemCount + tok->fElemCount >= fMaxCount)
? fMaxCount + tok->fMaxCount : fMaxCount;
XMLInt32* result = (XMLInt32*) fMemoryManager->allocate
(
newMax * sizeof(XMLInt32)
);//new XMLInt32[newMax];
unsigned int newElemCount = 0;
unsigned int srcCount = 0;
unsigned int tokCount = 0;
while (srcCount < fElemCount && tokCount < tok->fElemCount) {
XMLInt32 srcBegin = fRanges[srcCount];
XMLInt32 srcEnd = fRanges[srcCount + 1];
XMLInt32 tokBegin = tok->fRanges[tokCount];
XMLInt32 tokEnd = tok->fRanges[tokCount + 1];
if (srcEnd < tokBegin) {
srcCount += 2;
}
else if (srcEnd >= tokBegin && srcBegin <= tokEnd) {
if (tokBegin <= srcBegin && srcEnd <= tokEnd) {
result[newElemCount++] = srcBegin;
result[newElemCount++] = srcEnd;
srcCount += 2;
}
else if (tokBegin <= srcBegin) {
result[newElemCount++] = srcBegin;
result[newElemCount++] = tokEnd;
tokCount += 2;
if (tokCount < tok->fElemCount)
fRanges[srcCount] = tokEnd + 1;
else
srcCount += 2;
}
else if (srcEnd <= tokEnd) {
result[newElemCount++] = tokBegin;
result[newElemCount++] = srcEnd;
srcCount += 2;
}
else {
result[newElemCount++] = tokBegin;
result[newElemCount++] = tokEnd;
tokCount += 2;
if (tokCount < tok->fElemCount)
fRanges[srcCount] = tokEnd + 1;
else
srcCount += 2;
}
}
else if (tokEnd < srcBegin) {
tokCount += 2;
if (tokCount >= tok->fElemCount)
srcCount += 2;
}
else {
fMemoryManager->deallocate(result);//delete [] result;
ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_IntersectRangesError, fMemoryManager);
}
} //end while
fMemoryManager->deallocate(fRanges);//delete [] fRanges;
fRanges = result;
fElemCount = newElemCount;
fMaxCount = newMax;
}
/**
* for RANGE: Creates complement.
* for NRANGE: Creates the same meaning RANGE.
*/
Token* RangeToken::complementRanges(RangeToken* const tok,
TokenFactory* const tokFactory,
MemoryManager* const manager) {
if (tok->getTokenType() != T_RANGE && tok->getTokenType() != T_NRANGE)
ThrowXMLwithMemMgr(IllegalArgumentException, XMLExcepts::Regex_ComplementRangesInvalidArg, manager);
tok->sortRanges();
tok->compactRanges();
XMLInt32 lastElem = tok->fRanges[tok->fElemCount - 1];
RangeToken* rangeTok = tokFactory->createRange();
if (tok->fRanges[0] > 0) {
rangeTok->addRange(0, tok->fRanges[0] - 1);
}
for (unsigned int i= 1; i< tok->fElemCount - 2; i += 2) {
rangeTok->addRange(tok->fRanges[i] + 1, tok->fRanges[i+1] - 1);
}
if (lastElem != UTF16_MAX) {
rangeTok->addRange(lastElem + 1, UTF16_MAX);
}
rangeTok->fCompacted = true;
return rangeTok;
}
// ---------------------------------------------------------------------------
// RangeToken: Match methods
// ---------------------------------------------------------------------------
bool RangeToken::match(const XMLInt32 ch) {
createMap();
bool ret;
if (getTokenType() == T_RANGE) {
if (ch < MAPSIZE)
return ((fMap[ch/32] & (1<<(ch&0x1f))) != 0);
ret = false;
for (unsigned int i= fNonMapIndex; i< fElemCount; i +=2) {
if (fRanges[i] <= ch && ch <= fRanges[i+1])
return true;
}
}
else {
if (ch < MAPSIZE)
return ((fMap[ch/32] & (1<<(ch&0x1f))) == 0);
ret = true;
for (unsigned int i= fNonMapIndex; i< fElemCount; i += 2) {
if (fRanges[i] <= ch && ch <= fRanges[i+1])
return false;
}
}
return ret;
}
// ---------------------------------------------------------------------------
// RangeToken: Private helpers methods
// ---------------------------------------------------------------------------
void RangeToken::expand(const unsigned int length) {
unsigned int newMax = fElemCount + length;
// Avoid too many reallocations by expanding by a percentage
unsigned int minNewMax = (unsigned int)((double)fElemCount * 1.25);
if (newMax < minNewMax)
newMax = minNewMax;
XMLInt32* newList = (XMLInt32*) fMemoryManager->allocate
(
newMax * sizeof(XMLInt32)
);//new XMLInt32[newMax];
for (unsigned int index = 0; index < fElemCount; index++)
newList[index] = fRanges[index];
fMemoryManager->deallocate(fRanges);//delete [] fRanges;
fRanges = newList;
fMaxCount = newMax;
}
void RangeToken::doCreateMap() {
assert(!fMap);
int asize = MAPSIZE/32;
fMap = (int*) fMemoryManager->allocate(asize * sizeof(int));//new int[asize];
fNonMapIndex = fElemCount;
for (int i = 0; i < asize; i++) {
fMap[i] = 0;
}
for (unsigned int j= 0; j < fElemCount; j += 2) {
XMLInt32 begin = fRanges[j];
XMLInt32 end = fRanges[j+1];
if (begin < MAPSIZE) {
for (int k = begin; k <= end && k < MAPSIZE; k++) {
fMap[k/32] |= 1<<(k&0x1F);
}
}
else {
fNonMapIndex = j;
break;
}
if (end >= MAPSIZE) {
fNonMapIndex = j;
break;
}
}
}
XERCES_CPP_NAMESPACE_END
/**
* End of file RangeToken.cpp
*/
--- NEW FILE: XMLUniCharacter.cpp ---
/*
* Copyright 2001,2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: XMLUniCharacter.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/regx/XMLUniCharacter.hpp>
#if defined (XML_USE_ICU_TRANSCODER) || defined (XML_USE_UNICONV390_TRANSCODER)
#include <unicode/uchar.h>
#else
#include <xercesc/util/regx/UniCharTable.hpp>
#endif
XERCES_CPP_NAMESPACE_BEGIN
// ---------------------------------------------------------------------------
// XMLUniCharacter: Public static methods
// ---------------------------------------------------------------------------
unsigned short XMLUniCharacter::getType(const XMLCh ch) {
#if defined (XML_USE_ICU_TRANSCODER) || defined (XML_USE_UNICONV390_TRANSCODER)
return (unsigned short) u_charType(ch);
#else
return (unsigned short) fgUniCharsTable[ch];
#endif
}
XERCES_CPP_NAMESPACE_END
/**
* End of file XMLUniCharacter.cpp
*/
--- NEW FILE: StringToken.cpp ---
/*
* Copyright 2001,2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: StringToken.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/regx/StringToken.hpp>
XERCES_CPP_NAMESPACE_BEGIN
// ---------------------------------------------------------------------------
// Token: Constructors and Destructors
// ---------------------------------------------------------------------------
StringToken::StringToken(const unsigned short tokType,
const XMLCh* const literal,
const int refNo,
MemoryManager* const manager)
: Token(tokType, manager)
, fRefNo(refNo)
, fString(XMLString::replicate(literal, manager))
, fMemoryManager(manager)
{
}
StringToken::~StringToken() {
fMemoryManager->deallocate(fString);//delete [] fString;
}
XERCES_CPP_NAMESPACE_END
/**
* End of file StringToken.cpp
*/
Index: XMLRangeFactory.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/XMLRangeFactory.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** XMLRangeFactory.hpp 14 Apr 2004 10:08:22 -0000 1.1.1.1
--- XMLRangeFactory.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001-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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001-2002,2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
***************
*** 81,85 ****
// Initialization methods
// -----------------------------------------------------------------------
! void initializeKeywordMap();
protected:
--- 41,45 ----
// Initialization methods
// -----------------------------------------------------------------------
! void initializeKeywordMap(RangeTokenMap *rangeTokMap = 0);
protected:
***************
*** 87,91 ****
// Protected Helper methods
// -----------------------------------------------------------------------
! void buildRanges();
private:
--- 47,51 ----
// Protected Helper methods
// -----------------------------------------------------------------------
! void buildRanges(RangeTokenMap *rangeTokMap = 0);
private:
***************
*** 95,101 ****
XMLRangeFactory(const XMLRangeFactory&);
XMLRangeFactory& operator=(const XMLRangeFactory&);
-
- bool fRangesCreated;
- bool fKeywordsInitialized;
};
--- 55,58 ----
Index: UnicodeRangeFactory.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/UnicodeRangeFactory.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** UnicodeRangeFactory.hpp 14 Apr 2004 10:08:22 -0000 1.1.1.1
--- UnicodeRangeFactory.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001-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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001-2002,2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
***************
*** 81,85 ****
// Initialization methods
// -----------------------------------------------------------------------
! void initializeKeywordMap();
protected:
--- 41,45 ----
// Initialization methods
// -----------------------------------------------------------------------
! void initializeKeywordMap(RangeTokenMap *rangeTokMap = 0);
protected:
***************
*** 87,91 ****
// Private Helper methods
// -----------------------------------------------------------------------
! void buildRanges();
private:
--- 47,51 ----
// Private Helper methods
// -----------------------------------------------------------------------
! void buildRanges(RangeTokenMap *rangeTokMap = 0);
private:
***************
*** 100,106 ****
// -----------------------------------------------------------------------
unsigned short getUniCategory(const unsigned short type);
-
- bool fRangesCreated;
- bool fKeywordsInitialized;
};
--- 60,63 ----
--- NEW FILE: ParenToken.cpp ---
/*
* Copyright 2001,2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: ParenToken.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/regx/ParenToken.hpp>
XERCES_CPP_NAMESPACE_BEGIN
// ---------------------------------------------------------------------------
// ParenToken: Constructors and Destructors
// ---------------------------------------------------------------------------
ParenToken::ParenToken(const unsigned short tokType,
Token* const tok, const int noParen, MemoryManager* const manager)
: Token(tokType, manager)
, fNoParen(noParen)
, fChild(tok)
{
}
ParenToken::~ParenToken() {
}
XERCES_CPP_NAMESPACE_END
/**
* End of file ParenToken.cpp
*/
Index: RegxParser.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/RegxParser.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** RegxParser.hpp 14 Apr 2004 10:08:17 -0000 1.1.1.1
--- RegxParser.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001-2003 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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001-2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
***************
*** 70,74 ****
#include <xercesc/util/RefVectorOf.hpp>
#include <xercesc/util/XMLUniDefs.hpp>
- #include <xercesc/util/Mutexes.hpp>
XERCES_CPP_NAMESPACE_BEGIN
--- 30,33 ----
***************
*** 155,159 ****
virtual bool checkQuestion(const int off);
virtual XMLInt32 decodeEscaped();
!
// -----------------------------------------------------------------------
// Protected Parsing/Processing methods
--- 114,118 ----
virtual bool checkQuestion(const int off);
virtual XMLInt32 decodeEscaped();
! MemoryManager* getMemoryManager() const;
// -----------------------------------------------------------------------
// Protected Parsing/Processing methods
***************
*** 205,208 ****
--- 164,173 ----
Token* parseAtom();
+ // -----------------------------------------------------------------------
+ // Unimplemented constructors and operators
+ // -----------------------------------------------------------------------
+ RegxParser(const RegxParser&);
+ RegxParser& operator=(const RegxParser&);
+
// -----------------------------------------------------------------------
// Private data types
***************
*** 231,235 ****
int fOffset;
int fNoGroups;
! int fParseContext;
int fStringLen;
unsigned short fState;
--- 196,200 ----
int fOffset;
int fNoGroups;
! unsigned short fParseContext;
int fStringLen;
unsigned short fState;
***************
*** 238,242 ****
RefVectorOf<ReferencePosition>* fReferences;
TokenFactory* fTokenFactory;
- XMLMutex fMutex;
};
--- 203,206 ----
***************
*** 280,283 ****
--- 244,250 ----
}
+ inline MemoryManager* RegxParser::getMemoryManager() const {
+ return fMemoryManager;
+ }
// ---------------------------------------------------------------------------
// RegxParser: Setter Methods
--- NEW FILE: UnicodeRangeFactory.cpp ---
/*
* Copyright 2001-2002,2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: UnicodeRangeFactory.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/regx/UnicodeRangeFactory.hpp>
#include <xercesc/util/regx/TokenFactory.hpp>
#include <xercesc/util/regx/RangeToken.hpp>
#include <xercesc/util/regx/RangeTokenMap.hpp>
#include <xercesc/util/regx/RegxDefs.hpp>
#include <xercesc/util/regx/XMLUniCharacter.hpp>
XERCES_CPP_NAMESPACE_BEGIN
// ---------------------------------------------------------------------------
// Local data
// ---------------------------------------------------------------------------
const int UNICATEGSIZE = 37;
const unsigned short CHAR_LETTER = 30;
const unsigned short CHAR_MARK = 31;
const unsigned short CHAR_NUMBER = 32;
const unsigned short CHAR_SEPARATOR = 33;
const unsigned short CHAR_OTHER = 34;
const unsigned short CHAR_PUNCTUATION = 35;
const unsigned short CHAR_SYMBOL = 36;
const XMLCh uniCategNames[][UNICATEGSIZE] =
{
{chLatin_C, chLatin_n, chNull},
{chLatin_L, chLatin_u, chNull},
{chLatin_L, chLatin_l, chNull},
{chLatin_L, chLatin_t, chNull},
{chLatin_L, chLatin_m, chNull},
{chLatin_L, chLatin_o, chNull},
{chLatin_M, chLatin_n, chNull},
{chLatin_M, chLatin_e, chNull},
{chLatin_M, chLatin_c, chNull},
{chLatin_N, chLatin_d, chNull},
{chLatin_N, chLatin_l, chNull},
{chLatin_N, chLatin_o, chNull},
{chLatin_Z, chLatin_s, chNull},
{chLatin_Z, chLatin_l, chNull},
{chLatin_Z, chLatin_p, chNull},
{chLatin_C, chLatin_c, chNull},
{chLatin_C, chLatin_f, chNull},
{chLatin_C, chLatin_o, chNull},
{chLatin_C, chLatin_s, chNull},
{chLatin_P, chLatin_d, chNull},
{chLatin_P, chLatin_s, chNull},
{chLatin_P, chLatin_e, chNull},
{chLatin_P, chLatin_c, chNull},
{chLatin_P, chLatin_o, chNull},
{chLatin_S, chLatin_m, chNull},
{chLatin_S, chLatin_c, chNull},
{chLatin_S, chLatin_k, chNull},
{chLatin_S, chLatin_o, chNull},
{chLatin_P, chLatin_i, chNull},
{chLatin_P, chLatin_f, chNull},
{chLatin_L, chNull},
{chLatin_M, chNull},
{chLatin_N, chNull},
{chLatin_Z, chNull},
{chLatin_C, chNull},
{chLatin_P, chNull},
{chLatin_S, chNull},
};
// ---------------------------------------------------------------------------
// UnicodeRangeFactory: Constructors and Destructor
// ---------------------------------------------------------------------------
UnicodeRangeFactory::UnicodeRangeFactory()
{
}
UnicodeRangeFactory::~UnicodeRangeFactory() {
}
// ---------------------------------------------------------------------------
// UnicodeRangeFactory: Range creation methods
// ---------------------------------------------------------------------------
void UnicodeRangeFactory::buildRanges(RangeTokenMap *rangeTokMap) {
if (fRangesCreated)
return;
if (!fKeywordsInitialized) {
initializeKeywordMap(rangeTokMap);
}
TokenFactory* tokFactory = rangeTokMap->getTokenFactory();
RangeToken* ranges[UNICATEGSIZE];
RangeToken* tok;
for (int i=0; i < UNICATEGSIZE; i++) {
ranges[i] = tokFactory->createRange();
}
for (int j=0; j < 0x10000; j++) {
unsigned short charType = XMLUniCharacter::getType(j);
ranges[charType]->addRange(j, j);
charType = getUniCategory(charType);
ranges[charType]->addRange(j, j);
}
ranges[XMLUniCharacter::UNASSIGNED]->addRange(0x10000, Token::UTF16_MAX);
for (int k=0; k < UNICATEGSIZE; k++) {
tok = (RangeToken*) RangeToken::complementRanges(ranges[k], tokFactory);
// build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(uniCategNames[k], ranges[k]);
rangeTokMap->setRangeToken(uniCategNames[k], tok , true);
}
// Create all range
tok = tokFactory->createRange();
tok->addRange(0, Token::UTF16_MAX);
// build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgUniAll, tok);
// Create alpha range
tok = tokFactory->createRange();
tok->mergeRanges(ranges[XMLUniCharacter::UPPERCASE_LETTER]);
tok->mergeRanges(ranges[XMLUniCharacter::LOWERCASE_LETTER]);
tok->mergeRanges(ranges[XMLUniCharacter::OTHER_LETTER]);
// build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgUniIsAlpha, tok);
// Create alpha-num range
RangeToken* alnumTok = tokFactory->createRange();
alnumTok->mergeRanges(tok);
alnumTok->mergeRanges(ranges[XMLUniCharacter::DECIMAL_DIGIT_NUMBER]);
// build the internal map.
alnumTok->createMap();
rangeTokMap->setRangeToken(fgUniIsAlnum, alnumTok);
// Create word range
tok = tokFactory->createRange();
tok->mergeRanges(alnumTok);
tok->addRange(chUnderscore, chUnderscore);
// build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgUniIsWord, tok);
tok = (RangeToken*) RangeToken::complementRanges(tok, tokFactory);
// build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgUniIsWord, tok , true);
// Create assigned range
tok = (RangeToken*)RangeToken::complementRanges(
ranges[XMLUniCharacter::UNASSIGNED],
tokFactory,
tokFactory->getMemoryManager());
// build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgUniAssigned,tok);
// Create space range
tok = tokFactory->createRange();
tok->mergeRanges(ranges[XMLUniCharacter::SPACE_SEPARATOR]);
tok->mergeRanges(ranges[XMLUniCharacter::LINE_SEPARATOR]);
//tok->mergeRanges(ranges[XMLUniCharacter::PARAGRAPH_SEPARATOR]);
// build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgUniIsSpace, tok);
tok = (RangeToken*) RangeToken::complementRanges(tok, tokFactory);
// build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgUniIsSpace, tok , true);
// build the internal maps.
for (int l=0; l < UNICATEGSIZE; l++) {
ranges[l]->createMap();
}
fRangesCreated = true;
}
// ---------------------------------------------------------------------------
// UnicodeRangeFactory: Initialization methods
// ---------------------------------------------------------------------------
void UnicodeRangeFactory::initializeKeywordMap(RangeTokenMap *rangeTokMap) {
if (fKeywordsInitialized)
return;
for (int k=0; k < UNICATEGSIZE; k++) {
rangeTokMap->addKeywordMap(uniCategNames[k], fgUnicodeCategory);
}
rangeTokMap->addKeywordMap(fgUniAll, fgUnicodeCategory);
rangeTokMap->addKeywordMap(fgUniIsAlpha, fgUnicodeCategory);
rangeTokMap->addKeywordMap(fgUniIsAlnum, fgUnicodeCategory);
rangeTokMap->addKeywordMap(fgUniIsWord, fgUnicodeCategory);
rangeTokMap->addKeywordMap(fgUniAssigned, fgUnicodeCategory);
rangeTokMap->addKeywordMap(fgUniIsSpace, fgUnicodeCategory);
fKeywordsInitialized = true;
}
// ---------------------------------------------------------------------------
// UnicodeRangeFactory: Helper methods
// ---------------------------------------------------------------------------
unsigned short UnicodeRangeFactory::getUniCategory(const unsigned short type)
{
switch(type) {
case XMLUniCharacter::UPPERCASE_LETTER:
case XMLUniCharacter::LOWERCASE_LETTER:
case XMLUniCharacter::TITLECASE_LETTER:
case XMLUniCharacter::MODIFIER_LETTER:
case XMLUniCharacter::OTHER_LETTER:
return CHAR_LETTER;
case XMLUniCharacter::NON_SPACING_MARK:
case XMLUniCharacter::COMBINING_SPACING_MARK:
case XMLUniCharacter::ENCLOSING_MARK:
return CHAR_MARK;
case XMLUniCharacter::DECIMAL_DIGIT_NUMBER:
case XMLUniCharacter::LETTER_NUMBER:
case XMLUniCharacter::OTHER_NUMBER:
return CHAR_NUMBER;
case XMLUniCharacter::SPACE_SEPARATOR:
case XMLUniCharacter::LINE_SEPARATOR:
case XMLUniCharacter::PARAGRAPH_SEPARATOR:
return CHAR_SEPARATOR;
case XMLUniCharacter::CONTROL:
case XMLUniCharacter::FORMAT:
case XMLUniCharacter::SURROGATE:
case XMLUniCharacter::PRIVATE_USE:
case XMLUniCharacter::UNASSIGNED:
return CHAR_OTHER;
case XMLUniCharacter::CONNECTOR_PUNCTUATION:
case XMLUniCharacter::DASH_PUNCTUATION:
case XMLUniCharacter::START_PUNCTUATION:
case XMLUniCharacter::END_PUNCTUATION:
case XMLUniCharacter::OTHER_PUNCTUATION:
case XMLUniCharacter::INITIAL_PUNCTUATION:
case XMLUniCharacter::FINAL_PUNCTUATION:
return CHAR_PUNCTUATION;
case XMLUniCharacter::MATH_SYMBOL:
case XMLUniCharacter::CURRENCY_SYMBOL:
case XMLUniCharacter::MODIFIER_SYMBOL:
case XMLUniCharacter::OTHER_SYMBOL:
return CHAR_SYMBOL;
}
return 0;
}
XERCES_CPP_NAMESPACE_END
/**
* End of file UnicodeRangeFactory.cpp
*/
Index: ConditionToken.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/ConditionToken.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** ConditionToken.hpp 14 Apr 2004 10:08:16 -0000 1.1.1.1
--- ConditionToken.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001 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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001,2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
***************
*** 75,79 ****
// -----------------------------------------------------------------------
ConditionToken(const unsigned int refNo, Token* const condTok,
! Token* const yesTok, Token* const noTok);
~ConditionToken();
--- 35,40 ----
// -----------------------------------------------------------------------
ConditionToken(const unsigned int refNo, Token* const condTok,
! Token* const yesTok, Token* const noTok
! , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
~ConditionToken();
***************
*** 119,123 ****
if (index < 0 || index > 1)
! ThrowXML(RuntimeException, XMLExcepts::Regex_InvalidChildIndex);
if (index == 0)
--- 80,84 ----
if (index < 0 || index > 1)
! ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_InvalidChildIndex, fMemoryManager);
if (index == 0)
Index: TokenFactory.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/TokenFactory.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** TokenFactory.hpp 14 Apr 2004 10:08:17 -0000 1.1.1.1
--- TokenFactory.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001-2003 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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001-2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
***************
*** 139,142 ****
--- 99,104 ----
MemoryManager* getMemoryManager() const;
+ static RangeToken* staticGetRange(const XMLCh* const name,const bool complement=false);
+
// -----------------------------------------------------------------------
// Notification that lazy data has been deleted
***************
*** 152,165 ****
// -----------------------------------------------------------------------
- // Private Helpers methods
- // -----------------------------------------------------------------------
- /*
- * Initializes the registry with a set of commonly used RangeToken
- * objects.
- */
- void initializeRegistry();
- friend class RangeTokenMap;
-
- // -----------------------------------------------------------------------
// Private data members
//
--- 114,117 ----
***************
*** 171,175 ****
// Contains user created Token objects. Used for memory cleanup.
// -----------------------------------------------------------------------
- static bool fRangeInitialized;
RefVectorOf<Token>* fTokens;
Token* fEmpty;
--- 123,126 ----
***************
*** 189,192 ****
--- 140,148 ----
MemoryManager* fMemoryManager;
};
+
+ inline RangeToken* TokenFactory::getRange(const XMLCh* const name,const bool complement)
+ {
+ return staticGetRange(name, complement);
+ }
inline MemoryManager* TokenFactory::getMemoryManager() const
Index: RegxDefs.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/RegxDefs.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** RegxDefs.hpp 14 Apr 2004 10:08:17 -0000 1.1.1.1
--- RegxDefs.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001-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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001-2002,2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
***************
*** 70,84 ****
XERCES_CPP_NAMESPACE_BEGIN
! const XMLCh fgXMLCategory[] =
{
chLatin_X, chLatin_M, chLatin_L, chNull
};
! const XMLCh fgASCIICategory[] =
{
chLatin_A, chLatin_S, chLatin_C, chLatin_I, chLatin_I, chNull
};
! const XMLCh fgUnicodeCategory[] =
{
chLatin_U, chLatin_N, chLatin_I, chLatin_C, chLatin_O, chLatin_D,
--- 30,44 ----
XERCES_CPP_NAMESPACE_BEGIN
! static const XMLCh fgXMLCategory[] =
{
chLatin_X, chLatin_M, chLatin_L, chNull
};
! static const XMLCh fgASCIICategory[] =
{
chLatin_A, chLatin_S, chLatin_C, chLatin_I, chLatin_I, chNull
};
! static const XMLCh fgUnicodeCategory[] =
{
chLatin_U, chLatin_N, chLatin_I, chLatin_C, chLatin_O, chLatin_D,
***************
*** 86,95 ****
};
! const XMLCh fgBlockCategory[] =
{
chLatin_B, chLatin_L, chLatin_O, chLatin_C, chLatin_K, chNull
};
! const XMLCh fgXMLSpace[] =
{
chLatin_x, chLatin_m, chLatin_l, chColon, chLatin_i, chLatin_s, chLatin_S,
--- 46,55 ----
};
! static const XMLCh fgBlockCategory[] =
{
chLatin_B, chLatin_L, chLatin_O, chLatin_C, chLatin_K, chNull
};
! static const XMLCh fgXMLSpace[] =
{
chLatin_x, chLatin_m, chLatin_l, chColon, chLatin_i, chLatin_s, chLatin_S,
***************
*** 97,101 ****
};
! const XMLCh fgXMLDigit[] =
{
chLatin_x, chLatin_m, chLatin_l, chColon, chLatin_i, chLatin_s, chLatin_D,
--- 57,61 ----
};
! static const XMLCh fgXMLDigit[] =
{
chLatin_x, chLatin_m, chLatin_l, chColon, chLatin_i, chLatin_s, chLatin_D,
***************
*** 103,107 ****
};
! const XMLCh fgXMLWord[] =
{
chLatin_x, chLatin_m, chLatin_l, chColon, chLatin_i, chLatin_s, chLatin_W,
--- 63,67 ----
};
! static const XMLCh fgXMLWord[] =
{
chLatin_x, chLatin_m, chLatin_l, chColon, chLatin_i, chLatin_s, chLatin_W,
***************
*** 109,113 ****
};
! const XMLCh fgXMLNameChar[] =
{
chLatin_x, chLatin_m, chLatin_l, chColon, chLatin_i, chLatin_s, chLatin_N,
--- 69,73 ----
};
! static const XMLCh fgXMLNameChar[] =
{
chLatin_x, chLatin_m, chLatin_l, chColon, chLatin_i, chLatin_s, chLatin_N,
***************
*** 116,120 ****
};
! const XMLCh fgXMLInitialNameChar[] =
{
chLatin_x, chLatin_m, chLatin_l, chColon, chLatin_i, chLatin_s, chLatin_I,
--- 76,80 ----
};
! static const XMLCh fgXMLInitialNameChar[] =
{
chLatin_x, chLatin_m, chLatin_l, chColon, chLatin_i, chLatin_s, chLatin_I,
***************
*** 124,128 ****
};
! const XMLCh fgASCII[] =
{
chLatin_a, chLatin_s, chLatin_c, chLatin_i, chLatin_i, chColon, chLatin_i,
--- 84,88 ----
};
! static const XMLCh fgASCII[] =
{
chLatin_a, chLatin_s, chLatin_c, chLatin_i, chLatin_i, chColon, chLatin_i,
***************
*** 130,134 ****
};
! const XMLCh fgASCIIDigit[] =
{
chLatin_a, chLatin_s, chLatin_c, chLatin_i, chLatin_i, chColon, chLatin_i,
--- 90,94 ----
};
! static const XMLCh fgASCIIDigit[] =
{
chLatin_a, chLatin_s, chLatin_c, chLatin_i, chLatin_i, chColon, chLatin_i,
***************
*** 136,140 ****
};
! const XMLCh fgASCIIWord[] =
{
chLatin_a, chLatin_s, chLatin_c, chLatin_i, chLatin_i, chColon, chLatin_i,
--- 96,100 ----
};
! static const XMLCh fgASCIIWord[] =
{
chLatin_a, chLatin_s, chLatin_c, chLatin_i, chLatin_i, chColon, chLatin_i,
***************
*** 142,146 ****
};
! const XMLCh fgASCIISpace[] =
{
chLatin_a, chLatin_s, chLatin_c, chLatin_i, chLatin_i, chColon, chLatin_i,
--- 102,106 ----
};
! static const XMLCh fgASCIISpace[] =
{
chLatin_a, chLatin_s, chLatin_c, chLatin_i, chLatin_i, chColon, chLatin_i,
***************
*** 148,152 ****
};
! const XMLCh fgASCIIXDigit[] =
{
chLatin_a, chLatin_s, chLatin_c, chLatin_i, chLatin_i, chColon, chLatin_i,
--- 108,112 ----
};
! static const XMLCh fgASCIIXDigit[] =
{
chLatin_a, chLatin_s, chLatin_c, chLatin_i, chLatin_i, chColon, chLatin_i,
***************
*** 156,165 ****
! const XMLCh fgUniAll[] =
{
chLatin_A, chLatin_L, chLatin_L, chNull
};
! const XMLCh fgUniIsAlpha[] =
{
chLatin_I, chLatin_s, chLatin_A, chLatin_l, chLatin_p, chLatin_h,
--- 116,125 ----
! static const XMLCh fgUniAll[] =
{
chLatin_A, chLatin_L, chLatin_L, chNull
};
! static const XMLCh fgUniIsAlpha[] =
{
chLatin_I, chLatin_s, chLatin_A, chLatin_l, chLatin_p, chLatin_h,
***************
*** 167,171 ****
};
! const XMLCh fgUniIsAlnum[] =
{
chLatin_I, chLatin_s, chLatin_A, chLatin_l, chLatin_n, chLatin_u,
--- 127,131 ----
};
! static const XMLCh fgUniIsAlnum[] =
{
chLatin_I, chLatin_s, chLatin_A, chLatin_l, chLatin_n, chLatin_u,
***************
*** 173,177 ****
};
! const XMLCh fgUniIsWord[] =
{
chLatin_I, chLatin_s, chLatin_W, chLatin_o, chLatin_r, chLatin_d,
--- 133,137 ----
};
! static const XMLCh fgUniIsWord[] =
{
chLatin_I, chLatin_s, chLatin_W, chLatin_o, chLatin_r, chLatin_d,
***************
*** 180,184 ****
! const XMLCh fgUniIsDigit[] =
{
chLatin_I, chLatin_s, chLatin_D, chLatin_i, chLatin_g, chLatin_i,
--- 140,144 ----
! static const XMLCh fgUniIsDigit[] =
{
chLatin_I, chLatin_s, chLatin_D, chLatin_i, chLatin_g, chLatin_i,
***************
*** 186,190 ****
};
! const XMLCh fgUniIsUpper[] =
{
chLatin_I, chLatin_s, chLatin_U, chLatin_p, chLatin_p, chLatin_e,
--- 146,150 ----
};
! static const XMLCh fgUniIsUpper[] =
{
chLatin_I, chLatin_s, chLatin_U, chLatin_p, chLatin_p, chLatin_e,
***************
*** 192,196 ****
};
! const XMLCh fgUniIsLower[] =
{
chLatin_I, chLatin_s, chLatin_L, chLatin_o, chLatin_w, chLatin_e,
--- 152,156 ----
};
! static const XMLCh fgUniIsLower[] =
{
chLatin_I, chLatin_s, chLatin_L, chLatin_o, chLatin_w, chLatin_e,
***************
*** 198,202 ****
};
! const XMLCh fgUniIsPunct[] =
{
chLatin_I, chLatin_s, chLatin_P, chLatin_u, chLatin_n, chLatin_c,
--- 158,162 ----
};
! static const XMLCh fgUniIsPunct[] =
{
chLatin_I, chLatin_s, chLatin_P, chLatin_u, chLatin_n, chLatin_c,
***************
*** 204,208 ****
};
! const XMLCh fgUniIsSpace[] =
{
chLatin_I, chLatin_s, chLatin_S, chLatin_p, chLatin_a, chLatin_c,
--- 164,168 ----
};
! static const XMLCh fgUniIsSpace[] =
{
chLatin_I, chLatin_s, chLatin_S, chLatin_p, chLatin_a, chLatin_c,
***************
*** 210,214 ****
};
! const XMLCh fgUniAssigned[] =
{
chLatin_A, chLatin_S, chLatin_S, chLatin_I, chLatin_G, chLatin_N,
--- 170,174 ----
};
! static const XMLCh fgUniAssigned[] =
{
chLatin_A, chLatin_S, chLatin_S, chLatin_I, chLatin_G, chLatin_N,
***************
*** 217,226 ****
! const XMLCh fgUniDecimalDigit[] =
{
chLatin_N, chLatin_d, chNull
};
! const XMLCh fgBlockIsSpecials[] =
{
chLatin_I, chLatin_s, chLatin_S, chLatin_p, chLatin_e, chLatin_c, chLatin_i, chLatin_a,
--- 177,186 ----
! static const XMLCh fgUniDecimalDigit[] =
{
chLatin_N, chLatin_d, chNull
};
! static const XMLCh fgBlockIsSpecials[] =
{
chLatin_I, chLatin_s, chLatin_S, chLatin_p, chLatin_e, chLatin_c, chLatin_i, chLatin_a,
***************
*** 228,232 ****
};
! const XMLCh fgBlockIsPrivateUse[] =
{
chLatin_I, chLatin_s, chLatin_P, chLatin_r, chLatin_i, chLatin_v, chLatin_a, chLatin_t, chLatin_e,
--- 188,192 ----
};
! static const XMLCh fgBlockIsPrivateUse[] =
{
chLatin_I, chLatin_s, chLatin_P, chLatin_r, chLatin_i, chLatin_v, chLatin_a, chLatin_t, chLatin_e,
***************
*** 234,268 ****
};
! const XMLCh fgUniLetter[] =
{
chLatin_L, chNull
};
! const XMLCh fgUniNumber[] =
{
chLatin_N, chNull
};
! const XMLCh fgUniMark[] =
{
chLatin_M, chNull
};
! const XMLCh fgUniSeparator[] =
{
chLatin_Z, chNull
};
! const XMLCh fgUniPunctuation[] =
{
chLatin_P, chNull
};
! const XMLCh fgUniControl[] =
{
chLatin_C, chNull
};
! const XMLCh fgUniSymbol[] =
{
chLatin_S, chNull
--- 194,228 ----
};
! static const XMLCh fgUniLetter[] =
{
chLatin_L, chNull
};
! static const XMLCh fgUniNumber[] =
{
chLatin_N, chNull
};
! static const XMLCh fgUniMark[] =
{
chLatin_M, chNull
};
! static const XMLCh fgUniSeparator[] =
{
chLatin_Z, chNull
};
! static const XMLCh fgUniPunctuation[] =
{
chLatin_P, chNull
};
! static const XMLCh fgUniControl[] =
{
chLatin_C, chNull
};
! static const XMLCh fgUniSymbol[] =
{
chLatin_S, chNull
--- NEW FILE: OpFactory.cpp ---
/*
* Copyright 2001,2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: OpFactory.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/regx/Op.hpp>
#include <xercesc/util/regx/OpFactory.hpp>
#include <xercesc/util/PlatformUtils.hpp>
XERCES_CPP_NAMESPACE_BEGIN
// ---------------------------------------------------------------------------
// OpFactory: Constructors and Destructor
// ---------------------------------------------------------------------------
OpFactory::OpFactory(MemoryManager* const manager) :
fOpVector(0)
, fMemoryManager(manager)
{
fOpVector = new (fMemoryManager) RefVectorOf<Op>(16, true, fMemoryManager);
}
OpFactory::~OpFactory() {
delete fOpVector;
fOpVector = 0;
}
// ---------------------------------------------------------------------------
// OpFactory - Factory methods
// ---------------------------------------------------------------------------
Op* OpFactory::createDotOp() {
Op* tmpOp = new (fMemoryManager) Op(Op::O_DOT, fMemoryManager);
fOpVector->addElement(tmpOp);
return tmpOp;
}
CharOp* OpFactory::createCharOp(XMLInt32 data) {
CharOp* tmpOp = new (fMemoryManager) CharOp(Op::O_CHAR, data, fMemoryManager);
fOpVector->addElement(tmpOp);
return tmpOp;
}
CharOp* OpFactory::createAnchorOp(XMLInt32 data) {
CharOp* tmpOp = new (fMemoryManager) CharOp(Op::O_ANCHOR, data, fMemoryManager);
fOpVector->addElement(tmpOp);
return tmpOp;
}
CharOp* OpFactory::createCaptureOp(int number, const Op* const next) {
CharOp* tmpOp = new (fMemoryManager) CharOp(Op::O_CAPTURE, number, fMemoryManager);
tmpOp->setNextOp(next);
fOpVector->addElement(tmpOp);
return tmpOp;
}
UnionOp* OpFactory::createUnionOp(int size) {
UnionOp* tmpOp = new (fMemoryManager) UnionOp(Op::O_UNION, size, fMemoryManager);
fOpVector->addElement(tmpOp);
return tmpOp;
}
ChildOp* OpFactory::createClosureOp(int id) {
ModifierOp* tmpOp = new (fMemoryManager) ModifierOp(Op::O_CLOSURE, id, -1, fMemoryManager);
fOpVector->addElement(tmpOp);
return tmpOp;
}
ChildOp* OpFactory::createNonGreedyClosureOp() {
ChildOp* tmpOp = new (fMemoryManager) ChildOp(Op::O_NONGREEDYCLOSURE, fMemoryManager);
fOpVector->addElement(tmpOp);
return tmpOp;
}
ChildOp* OpFactory::createQuestionOp(bool nonGreedy) {
ChildOp* tmpOp = new (fMemoryManager) ChildOp(nonGreedy ? Op::O_NONGREEDYQUESTION :
Op::O_QUESTION, fMemoryManager);
fOpVector->addElement(tmpOp);
return tmpOp;
}
RangeOp* OpFactory::createRangeOp(const Token* const token) {
RangeOp* tmpOp = new (fMemoryManager) RangeOp(Op::O_RANGE, token, fMemoryManager);
fOpVector->addElement(tmpOp);
return tmpOp;
}
ChildOp* OpFactory::createLookOp(const short type, const Op* const next,
const Op* const branch) {
ChildOp* tmpOp = new (fMemoryManager) ChildOp(type, fMemoryManager);
tmpOp->setNextOp(next);
tmpOp->setChild(branch);
fOpVector->addElement(tmpOp);
return tmpOp;
}
CharOp* OpFactory::createBackReferenceOp(int refNo) {
CharOp* tmpOp = new (fMemoryManager) CharOp(Op::O_BACKREFERENCE, refNo, fMemoryManager);
fOpVector->addElement(tmpOp);
return tmpOp;
}
StringOp* OpFactory::createStringOp(const XMLCh* const literal) {
StringOp* tmpOp = new (fMemoryManager) StringOp(Op::O_STRING, literal, fMemoryManager);
fOpVector->addElement(tmpOp);
return tmpOp;
}
ChildOp* OpFactory::createIndependentOp(const Op* const next,
const Op* const branch) {
ChildOp* tmpOp = new (fMemoryManager) ChildOp(Op::O_INDEPENDENT, fMemoryManager);
tmpOp->setNextOp(next);
tmpOp->setChild(branch);
fOpVector->addElement(tmpOp);
return tmpOp;
}
ModifierOp* OpFactory::createModifierOp(const Op* const next,
const Op* const branch,
const int add, const int mask) {
ModifierOp* tmpOp = new (fMemoryManager) ModifierOp(Op::O_MODIFIER, add, mask, fMemoryManager);
tmpOp->setNextOp(next);
tmpOp->setChild(branch);
return tmpOp;
}
ConditionOp* OpFactory::createConditionOp(const Op* const next, const int ref,
const Op* const conditionFlow,
const Op* const yesFlow,
const Op* const noFlow) {
ConditionOp* tmpOp = new (fMemoryManager) ConditionOp(Op::O_CONDITION, ref, conditionFlow,
yesFlow, noFlow, fMemoryManager);
tmpOp->setNextOp(next);
return tmpOp;
}
XERCES_CPP_NAMESPACE_END
/**
* End of file OpFactory.cpp
*/
--- NEW FILE: XMLRangeFactory.cpp ---
/*
* Copyright 2001-2002,2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: XMLRangeFactory.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/regx/XMLRangeFactory.hpp>
#include <xercesc/internal/CharTypeTables.hpp>
#include <xercesc/util/regx/RegxDefs.hpp>
#include <xercesc/util/regx/TokenFactory.hpp>
#include <xercesc/util/regx/RangeToken.hpp>
#include <xercesc/util/regx/RangeTokenMap.hpp>
#include <xercesc/util/Janitor.hpp>
#include <string.h>
XERCES_CPP_NAMESPACE_BEGIN
// ---------------------------------------------------------------------------
// Local static functions
// ---------------------------------------------------------------------------
static void setupRange(XMLInt32* const rangeMap,
const XMLCh* const theTable,
unsigned int startingIndex) {
const XMLCh* pchCur = theTable;
// Do the ranges first
while (*pchCur)
{
rangeMap[startingIndex++] = *pchCur++;
}
// Skip the range terminator
pchCur++;
// And then the singles until we hit its terminator
while (*pchCur) {
const XMLCh chSingle = *pchCur++;
rangeMap[startingIndex++] = chSingle;
rangeMap[startingIndex++] = chSingle;
}
}
static unsigned int getTableLen(const XMLCh* const theTable) {
unsigned int rangeLen = XMLString::stringLen(theTable);
return rangeLen + 2*XMLString::stringLen(theTable + rangeLen + 1);
}
// ---------------------------------------------------------------------------
// XMLRangeFactory: Constructors and Destructor
// ---------------------------------------------------------------------------
XMLRangeFactory::XMLRangeFactory()
{
}
XMLRangeFactory::~XMLRangeFactory() {
}
// ---------------------------------------------------------------------------
// XMLRangeFactory: Range creation methods
// ---------------------------------------------------------------------------
void XMLRangeFactory::buildRanges(RangeTokenMap *rangeTokMap) {
if (fRangesCreated)
return;
if (!fKeywordsInitialized) {
initializeKeywordMap(rangeTokMap);
}
TokenFactory* tokFactory = rangeTokMap->getTokenFactory();
// Create space ranges
unsigned int wsTblLen = getTableLen(gWhitespaceChars);
RangeToken* tok = tokFactory->createRange();
XMLInt32* wsRange = (XMLInt32*) XMLPlatformUtils::fgMemoryManager->allocate
(
wsTblLen * sizeof(XMLInt32)
);//new XMLInt32[wsTblLen];
tok->setRangeValues(wsRange, wsTblLen);
setupRange(wsRange, gWhitespaceChars, 0);
// Build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgXMLSpace, tok);
tok = (RangeToken*) RangeToken::complementRanges(tok, tokFactory);
// Build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgXMLSpace, tok , true);
// Create digits ranges
tok = tokFactory->createRange();
unsigned int digitTblLen = getTableLen(gDigitChars);
XMLInt32* digitRange = (XMLInt32*) XMLPlatformUtils::fgMemoryManager->allocate
(
digitTblLen * sizeof(XMLInt32)
);//new XMLInt32[digitTblLen];
tok->setRangeValues(digitRange, digitTblLen);
setupRange(digitRange, gDigitChars, 0);
// Build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgXMLDigit, tok);
tok = (RangeToken*) RangeToken::complementRanges(tok, tokFactory);
// Build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgXMLDigit, tok , true);
// Build word ranges
unsigned int baseTblLen = getTableLen(gBaseChars);
unsigned int ideoTblLen = getTableLen(gIdeographicChars);
unsigned int wordRangeLen = baseTblLen + ideoTblLen + digitTblLen;
XMLInt32* wordRange = (XMLInt32*) XMLPlatformUtils::fgMemoryManager->allocate
(
wordRangeLen * sizeof(XMLInt32)
);//new XMLInt32[wordRangeLen];
ArrayJanitor<XMLInt32> janWordRange(wordRange, XMLPlatformUtils::fgMemoryManager);
setupRange(wordRange, gBaseChars, 0);
setupRange(wordRange, gIdeographicChars, baseTblLen);
memcpy(wordRange + baseTblLen + ideoTblLen, digitRange, digitTblLen * sizeof(XMLInt32));
// Create NameChar ranges
tok = tokFactory->createRange();
unsigned int combTblLen = getTableLen(gCombiningChars);
unsigned int extTblLen = getTableLen(gExtenderChars);
unsigned int nameTblLen = wordRangeLen + combTblLen + extTblLen;
XMLInt32* nameRange = (XMLInt32*) XMLPlatformUtils::fgMemoryManager->allocate
(
(nameTblLen + 8) * sizeof(XMLInt32)
);//new XMLInt32[nameTblLen + 8];
tok->setRangeValues(nameRange, nameTblLen + 8);
memcpy(nameRange, wordRange, wordRangeLen * sizeof(XMLInt32));
setupRange(nameRange, gCombiningChars, wordRangeLen);
setupRange(nameRange, gExtenderChars, wordRangeLen + combTblLen);
nameRange[nameTblLen++] = chDash;
nameRange[nameTblLen++] = chDash;
nameRange[nameTblLen++] = chColon;
nameRange[nameTblLen++] = chColon;
nameRange[nameTblLen++] = chPeriod;
nameRange[nameTblLen++] = chPeriod;
nameRange[nameTblLen++] = chUnderscore;
nameRange[nameTblLen++] = chUnderscore;
tok->sortRanges();
tok->compactRanges();
// Build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgXMLNameChar, tok);
tok = (RangeToken*) RangeToken::complementRanges(tok, tokFactory);
// Build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgXMLNameChar, tok , true);
// Create initialNameChar ranges
tok = tokFactory->createRange();
unsigned int initialNameTblLen = baseTblLen + ideoTblLen;
XMLInt32* initialNameRange = (XMLInt32*) XMLPlatformUtils::fgMemoryManager->allocate
(
(initialNameTblLen + 4) * sizeof(XMLInt32)
);//new XMLInt32[initialNameTblLen + 4];
tok->setRangeValues(initialNameRange, initialNameTblLen + 4);
memcpy(initialNameRange, wordRange, initialNameTblLen * sizeof(XMLInt32));
initialNameRange[initialNameTblLen++] = chColon;
initialNameRange[initialNameTblLen++] = chColon;
initialNameRange[initialNameTblLen++] = chUnderscore;
initialNameRange[initialNameTblLen++] = chUnderscore;
tok->sortRanges();
tok->compactRanges();
// Build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgXMLInitialNameChar, tok);
tok = (RangeToken*) RangeToken::complementRanges(tok, tokFactory);
// Build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgXMLInitialNameChar, tok , true);
// Create word range
tok = tokFactory->createRange();
tok->setRangeValues(wordRange, wordRangeLen);
janWordRange.orphan();
tok->sortRanges();
tok->compactRanges();
// Build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgXMLWord, tok);
tok = (RangeToken*) RangeToken::complementRanges(tok, tokFactory);
// Build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgXMLWord, tok , true);
fRangesCreated = true;
}
// ---------------------------------------------------------------------------
// XMLRangeFactory: Range creation methods
// ---------------------------------------------------------------------------
void XMLRangeFactory::initializeKeywordMap(RangeTokenMap *rangeTokMap) {
if (fKeywordsInitialized)
return;
rangeTokMap->addKeywordMap(fgXMLSpace, fgXMLCategory);
rangeTokMap->addKeywordMap(fgXMLDigit, fgXMLCategory);
rangeTokMap->addKeywordMap(fgXMLWord, fgXMLCategory);
rangeTokMap->addKeywordMap(fgXMLNameChar, fgXMLCategory);
rangeTokMap->addKeywordMap(fgXMLInitialNameChar, fgXMLCategory);
fKeywordsInitialized = true;
}
XERCES_CPP_NAMESPACE_END
/**
* End of file XMLRangeFactory.cpp
*/
Index: Op.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/Op.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** Op.hpp 14 Apr 2004 10:08:16 -0000 1.1.1.1
--- Op.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001-2003 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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001-2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
***************
*** 135,147 ****
// Protected Constructors
// -----------------------------------------------------------------------
! Op(const short type);
friend class OpFactory;
private:
// -----------------------------------------------------------------------
// Unimplemented constructors and operators
// -----------------------------------------------------------------------
! Op(const Op&) {ThrowXML(RuntimeException, XMLExcepts::Regex_NotSupported);};
! Op& operator=(const Op&) {ThrowXML(RuntimeException, XMLExcepts::Regex_NotSupported);};
// -----------------------------------------------------------------------
--- 95,109 ----
// Protected Constructors
// -----------------------------------------------------------------------
! Op(const short type, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
friend class OpFactory;
+ MemoryManager* const fMemoryManager;
+
private:
// -----------------------------------------------------------------------
// Unimplemented constructors and operators
// -----------------------------------------------------------------------
! Op(const Op&);
! Op& operator=(const Op&);
// -----------------------------------------------------------------------
***************
*** 164,168 ****
// Public Constructors and Destructor
// -----------------------------------------------------------------------
! CharOp(const short type, const XMLInt32 charData);
~CharOp() {}
--- 126,130 ----
// Public Constructors and Destructor
// -----------------------------------------------------------------------
! CharOp(const short type, const XMLInt32 charData, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
~CharOp() {}
***************
*** 176,179 ****
--- 138,146 ----
XMLInt32 fCharData;
+ // -----------------------------------------------------------------------
+ // Unimplemented constructors and operators
+ // -----------------------------------------------------------------------
+ CharOp(const CharOp&);
+ CharOp& operator=(const CharOp&);
};
***************
*** 201,204 ****
--- 168,177 ----
// Private Data memebers
RefVectorOf<Op>* fBranches;
+
+ // -----------------------------------------------------------------------
+ // Unimplemented constructors and operators
+ // -----------------------------------------------------------------------
+ UnionOp(const UnionOp&);
+ UnionOp& operator=(const UnionOp&);
};
***************
*** 209,213 ****
// Public Constructors and Destructor
// -----------------------------------------------------------------------
! ChildOp(const short type);
~ChildOp() {}
--- 182,186 ----
// Public Constructors and Destructor
// -----------------------------------------------------------------------
! ChildOp(const short type, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
~ChildOp() {}
***************
*** 225,228 ****
--- 198,207 ----
// Private data members
const Op* fChild;
+
+ // -----------------------------------------------------------------------
+ // Unimplemented constructors and operators
+ // -----------------------------------------------------------------------
+ ChildOp(const ChildOp&);
+ ChildOp& operator=(const ChildOp&);
};
***************
*** 232,236 ****
// Public Constructors and Destructor
// -----------------------------------------------------------------------
! ModifierOp(const short type, const XMLInt32 v1, const XMLInt32 v2);
~ModifierOp() {}
--- 211,215 ----
// Public Constructors and Destructor
// -----------------------------------------------------------------------
! ModifierOp(const short type, const XMLInt32 v1, const XMLInt32 v2, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
~ModifierOp() {}
***************
*** 245,248 ****
--- 224,233 ----
XMLInt32 fVal1;
XMLInt32 fVal2;
+
+ // -----------------------------------------------------------------------
+ // Unimplemented constructors and operators
+ // -----------------------------------------------------------------------
+ ModifierOp(const ModifierOp&);
+ ModifierOp& operator=(const ModifierOp&);
};
***************
*** 252,256 ****
// Public Constructors and Destructor
// -----------------------------------------------------------------------
! RangeOp(const short type, const Token* const token);
~RangeOp() {}
--- 237,241 ----
// Public Constructors and Destructor
// -----------------------------------------------------------------------
! RangeOp(const short type, const Token* const token, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
~RangeOp() {}
***************
*** 263,266 ****
--- 248,257 ----
// Private data members
const Token* fToken;
+
+ // -----------------------------------------------------------------------
+ // Unimplemented constructors and operators
+ // -----------------------------------------------------------------------
+ RangeOp(const RangeOp&);
+ RangeOp& operator=(const RangeOp&);
};
***************
*** 270,275 ****
// Public Constructors and Destructor
// -----------------------------------------------------------------------
! StringOp(const short type, const XMLCh* const literal);
! ~StringOp() { delete[] fLiteral;}
// -----------------------------------------------------------------------
--- 261,266 ----
// Public Constructors and Destructor
// -----------------------------------------------------------------------
! StringOp(const short type, const XMLCh* const literal, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
! ~StringOp() { fMemoryManager->deallocate(fLiteral);}
// -----------------------------------------------------------------------
***************
*** 281,284 ****
--- 272,281 ----
// Private data members
XMLCh* fLiteral;
+
+ // -----------------------------------------------------------------------
+ // Unimplemented constructors and operators
+ // -----------------------------------------------------------------------
+ StringOp(const StringOp&);
+ StringOp& operator=(const StringOp&);
};
***************
*** 290,294 ****
ConditionOp(const short type, const int refNo,
const Op* const condFlow, const Op* const yesFlow,
! const Op* const noFlow);
~ConditionOp() {}
--- 287,291 ----
ConditionOp(const short type, const int refNo,
const Op* const condFlow, const Op* const yesFlow,
! const Op* const noFlow, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
~ConditionOp() {}
***************
*** 307,310 ****
--- 304,313 ----
const Op* fYesOp;
const Op* fNoOp;
+
+ // -----------------------------------------------------------------------
+ // Unimplemented constructors and operators
+ // -----------------------------------------------------------------------
+ ConditionOp(const ConditionOp&);
+ ConditionOp& operator=(const ConditionOp&);
};
--- NEW FILE: ASCIIRangeFactory.cpp ---
/*
* Copyright 2001-2002,2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: ASCIIRangeFactory.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/regx/ASCIIRangeFactory.hpp>
#include <xercesc/util/regx/RegxDefs.hpp>
#include <xercesc/util/regx/TokenFactory.hpp>
#include <xercesc/util/regx/RangeToken.hpp>
#include <xercesc/util/regx/RangeTokenMap.hpp>
XERCES_CPP_NAMESPACE_BEGIN
// ---------------------------------------------------------------------------
// ASCIIRangeFactory: Constructors and Destructor
// ---------------------------------------------------------------------------
ASCIIRangeFactory::ASCIIRangeFactory()
{
}
ASCIIRangeFactory::~ASCIIRangeFactory() {
}
// ---------------------------------------------------------------------------
// ASCIIRangeFactory: Range creation methods
// ---------------------------------------------------------------------------
void ASCIIRangeFactory::buildRanges(RangeTokenMap *rangeTokMap) {
if (fRangesCreated)
return;
if (!fKeywordsInitialized) {
initializeKeywordMap(rangeTokMap);
}
TokenFactory* tokFactory = rangeTokMap->getTokenFactory();
// Create space ranges
RangeToken* tok = tokFactory->createRange();
tok->addRange(chHTab, chHTab);
tok->addRange(chLF, chLF);
tok->addRange(chFF, chFF);
tok->addRange(chCR, chCR);
tok->addRange(chSpace, chSpace);
// Build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgASCIISpace, tok);
tok = (RangeToken*) RangeToken::complementRanges(tok, tokFactory);
// Build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgASCIISpace, tok , true);
// Create digits ranges
tok = tokFactory->createRange();
tok->addRange(chDigit_0, chDigit_9);
// Build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgASCIIDigit, tok);
tok = (RangeToken*) RangeToken::complementRanges(tok, tokFactory);
// Build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgASCIIDigit, tok , true);
// Create word ranges
tok = tokFactory->createRange();
tok->addRange(chDigit_0, chDigit_9);
tok->addRange(chLatin_A, chLatin_Z);
tok->addRange(chUnderscore, chUnderscore);
tok->addRange(chLatin_a, chLatin_z);
// Build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgASCIIWord, tok);
tok = (RangeToken*) RangeToken::complementRanges(tok, tokFactory);
// Build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgASCIIWord, tok , true);
// Create xdigit ranges
tok = tokFactory->createRange();
tok->addRange(chDigit_0, chDigit_9);
tok->addRange(chLatin_A, chLatin_F);
tok->addRange(chLatin_a, chLatin_a);
// Build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgASCIIXDigit, tok);
tok = (RangeToken*) RangeToken::complementRanges(tok, tokFactory);
// Build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgASCIIXDigit, tok , true);
// Create ascii ranges
tok = tokFactory->createRange();
tok->addRange(0x00, 0x7F);
// Build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgASCII, tok);
tok = (RangeToken*) RangeToken::complementRanges(tok, tokFactory);
// Build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgASCII, tok , true);
fRangesCreated = true;
}
// ---------------------------------------------------------------------------
// ASCIIRangeFactory: Range creation methods
// ---------------------------------------------------------------------------
void ASCIIRangeFactory::initializeKeywordMap(RangeTokenMap *rangeTokMap) {
if (fKeywordsInitialized)
return;
rangeTokMap->addKeywordMap(fgASCIISpace, fgASCIICategory);
rangeTokMap->addKeywordMap(fgASCIIDigit, fgASCIICategory);
rangeTokMap->addKeywordMap(fgASCIIWord, fgASCIICategory);
rangeTokMap->addKeywordMap(fgASCIIXDigit, fgASCIICategory);
rangeTokMap->addKeywordMap(fgASCII, fgASCIICategory);
fKeywordsInitialized = true;
}
XERCES_CPP_NAMESPACE_END
/**
* End of file ASCIIRangeFactory.cpp
*/
Index: UniCharTable.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/UniCharTable.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** UniCharTable.hpp 14 Apr 2004 10:08:22 -0000 1.1.1.1
--- UniCharTable.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001 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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001,2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
***************
*** 64,72 ****
// (i.e LowercaseLetter, TitlecaseLetter, DigitOther, etc...) in case
// ICU is not used.
// ---------------------------------------------------------------------------
const XMLByte fgUniCharsTable[0x10000] =
! {
! 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0C, 0x0E, 0x0C, 0x0D, 0x0E, 0x0F, 0x0F
! , 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0E, 0x0E, 0x0E, 0x0C
, 0x0C, 0x17, 0x17, 0x17, 0x19, 0x17, 0x17, 0x17, 0x14, 0x15, 0x17, 0x18, 0x17, 0x13, 0x17, 0x17
, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x17, 0x17, 0x18, 0x18, 0x18, 0x17
--- 24,34 ----
// (i.e LowercaseLetter, TitlecaseLetter, DigitOther, etc...) in case
// ICU is not used.
+ //
+ // The table is generated by invoking the TokenFactory::printUnicode()
+ // method (which is commented out).
// ---------------------------------------------------------------------------
const XMLByte fgUniCharsTable[0x10000] =
! { 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
! , 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
, 0x0C, 0x17, 0x17, 0x17, 0x19, 0x17, 0x17, 0x17, 0x14, 0x15, 0x17, 0x18, 0x17, 0x13, 0x17, 0x17
, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x17, 0x17, 0x18, 0x18, 0x18, 0x17
***************
*** 75,81 ****
, 0x1A, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x14, 0x18, 0x15, 0x18, 0x0F
- , 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0E, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
! , 0x0C, 0x17, 0x19, 0x19, 0x19, 0x19, 0x1B, 0x1B, 0x1A, 0x1B, 0x02, 0x1C, 0x18, 0x13, 0x1B, 0x1A
, 0x1B, 0x18, 0x0B, 0x0B, 0x1A, 0x02, 0x1B, 0x17, 0x1A, 0x0B, 0x02, 0x1D, 0x0B, 0x0B, 0x0B, 0x17
, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
--- 37,43 ----
, 0x1A, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x14, 0x18, 0x15, 0x18, 0x0F
, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
! , 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F
! , 0x0C, 0x17, 0x19, 0x19, 0x19, 0x19, 0x1B, 0x1B, 0x1A, 0x1B, 0x02, 0x1C, 0x18, 0x10, 0x1B, 0x1A
, 0x1B, 0x18, 0x0B, 0x0B, 0x1A, 0x02, 0x1B, 0x17, 0x1A, 0x0B, 0x02, 0x1D, 0x0B, 0x0B, 0x0B, 0x17
, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
***************
*** 101,106 ****
, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
! , 0x00, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
! , 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
--- 63,68 ----
, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
! , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
! , 0x01, 0x02, 0x01, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
***************
*** 109,125 ****
, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
! , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00
! , 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x1A, 0x1A, 0x04, 0x04, 0x04, 0x04, 0x04
! , 0x04, 0x04, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A
, 0x04, 0x04, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A
! , 0x04, 0x04, 0x04, 0x04, 0x04, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x04, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
! , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x17, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x1A, 0x01, 0x17, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x01, 0x01
--- 71,87 ----
, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
! , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
! , 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04
! , 0x04, 0x04, 0x1A, 0x1A, 0x1A, 0x1A, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04
, 0x04, 0x04, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A
! , 0x04, 0x04, 0x04, 0x04, 0x04, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x04, 0x1A
! , 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A
, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
! , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
! , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06
! , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x17, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x1A, 0x01, 0x17, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x01, 0x01
***************
*** 128,134 ****
, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00
! , 0x02, 0x02, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x00, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
! , 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
--- 90,96 ----
, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00
! , 0x02, 0x02, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
! , 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x18, 0x01, 0x02, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00
, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
***************
*** 139,151 ****
, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
! , 0x01, 0x02, 0x1B, 0x06, 0x06, 0x06, 0x06, 0x00, 0x07, 0x07, 0x00, 0x00, 0x01, 0x02, 0x01, 0x02
, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
! , 0x01, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00
, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
--- 101,113 ----
, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
! , 0x01, 0x02, 0x1B, 0x06, 0x06, 0x06, 0x06, 0x00, 0x07, 0x07, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
! , 0x01, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00
, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
***************
*** 163,173 ****
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x05, 0x05, 0x05, 0x17, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x17
, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x04, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06
! , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x17, 0x17, 0x17, 0x17, 0x00, 0x00
, 0x06, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
--- 125,135 ----
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x05, 0x05, 0x05, 0x17, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x17, 0x1B, 0x1B
! , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x17
, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x04, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06
! , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x17, 0x17, 0x17, 0x17, 0x05, 0x05
, 0x06, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
***************
*** 176,187 ****
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
! , 0x05, 0x05, 0x05, 0x05, 0x17, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x06
! , 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x04, 0x06, 0x06, 0x1B, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00
! , 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x05, 0x05, 0x05, 0x1B, 0x1B, 0x00
, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x00, 0x10
, 0x05, 0x06, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
! , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00
, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
! , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
--- 138,149 ----
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
! , 0x05, 0x05, 0x05, 0x05, 0x17, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x10, 0x07, 0x06
! , 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x04, 0x06, 0x06, 0x1B, 0x06, 0x06, 0x06, 0x06, 0x05, 0x05
! , 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x05, 0x05, 0x05, 0x1B, 0x1B, 0x05
, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x00, 0x10
, 0x05, 0x06, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
! , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
! , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x05, 0x05, 0x05
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
***************
*** 190,194 ****
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
! , 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
--- 152,156 ----
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
! , 0x06, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
***************
*** 211,215 ****
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x06, 0x06, 0x08, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
--- 173,177 ----
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x06, 0x06, 0x08, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
***************
*** 222,231 ****
, 0x05, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
! , 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x06, 0x00, 0x08, 0x08
, 0x08, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x06, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x05
, 0x05, 0x05, 0x06, 0x06, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09
, 0x05, 0x05, 0x19, 0x19, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x06, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x05
, 0x05, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
--- 184,193 ----
, 0x05, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
! , 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x06, 0x05, 0x08, 0x08
, 0x08, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x06, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x05
, 0x05, 0x05, 0x06, 0x06, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09
, 0x05, 0x05, 0x19, 0x19, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x06, 0x06, 0x08, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x05
, 0x05, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
***************
*** 235,239 ****
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09
, 0x06, 0x06, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x06, 0x06, 0x08, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x00, 0x05
, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
--- 197,201 ----
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09
, 0x06, 0x06, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x06, 0x06, 0x08, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05
, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
***************
*** 241,255 ****
, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x08, 0x00, 0x08, 0x08, 0x06, 0x00, 0x00
, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x06, 0x08, 0x08, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x05
, 0x05, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
! , 0x05, 0x00, 0x05, 0x05, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x06, 0x05, 0x08, 0x06
, 0x08, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x06, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x08, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x05
, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09
! , 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x06, 0x08, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x05, 0x05
, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x05, 0x00, 0x05, 0x05
, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x00, 0x00, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x05, 0x05
--- 203,217 ----
, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x08, 0x00, 0x08, 0x08, 0x06, 0x00, 0x00
, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x05, 0x05, 0x06, 0x06, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09
! , 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x06, 0x08, 0x08, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x05
, 0x05, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
! , 0x05, 0x00, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x06, 0x05, 0x08, 0x06
, 0x08, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x06, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x08, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x05
, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09
! , 0x1B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x06, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x05, 0x05
, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x05, 0x00, 0x05, 0x05
, 0x00, 0x00, 0x00, 0x05, 0x05, 0x00, 0x00, 0x00, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x05, 0x05
***************
*** 258,262 ****
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09
! , 0x0B, 0x0B, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x08, 0x08, 0x08, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05
, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
--- 220,224 ----
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09
! , 0x0B, 0x0B, 0x0B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x19, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x08, 0x08, 0x08, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05
, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
***************
*** 270,274 ****
, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
! , 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x08, 0x06
, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x06, 0x08, 0x08, 0x00, 0x08, 0x08, 0x06, 0x06, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00
--- 232,236 ----
, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
! , 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x06, 0x05, 0x08, 0x06
, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x06, 0x08, 0x08, 0x00, 0x08, 0x08, 0x06, 0x06, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00
***************
*** 338,342 ****
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
! , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
--- 300,304 ----
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
! , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
***************
*** 433,455 ****
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
! , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x17, 0x17, 0x17, 0x0B, 0x0B
! , 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
! , 0x05, 0x05, 0x05, 0x05, 0x08, 0x08, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x08, 0x08
, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x06, 0x08, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
! , 0x06, 0x06, 0x06, 0x06, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x19, 0x17, 0x00, 0x00, 0x00
, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x13, 0x17, 0x17, 0x17, 0x17, 0x10, 0x10, 0x10, 0x10, 0x00
, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
--- 395,417 ----
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
! , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x17, 0x17, 0x17, 0x0A, 0x0A
! , 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05
! , 0x05, 0x05, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
! , 0x05, 0x05, 0x06, 0x06, 0x06, 0x17, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
! , 0x05, 0x05, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05
! , 0x05, 0x00, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
! , 0x05, 0x05, 0x05, 0x05, 0x10, 0x10, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x08, 0x08
, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x06, 0x08, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
! , 0x06, 0x06, 0x06, 0x06, 0x17, 0x17, 0x17, 0x04, 0x17, 0x17, 0x17, 0x19, 0x05, 0x06, 0x00, 0x00
, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x13, 0x17, 0x17, 0x17, 0x17, 0x06, 0x06, 0x06, 0x0C, 0x00
, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
***************
*** 467,470 ****
--- 429,440 ----
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+ , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00
+ , 0x06, 0x06, 0x06, 0x08, 0x08, 0x08, 0x08, 0x06, 0x06, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00
+ , 0x08, 0x08, 0x06, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00
+ , 0x1B, 0x00, 0x00, 0x00, 0x17, 0x17, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09
+ , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
+ , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00
+ , 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
***************
*** 473,476 ****
--- 443,448 ----
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+ , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
***************
*** 521,541 ****
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
--- 493,503 ----
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
! , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
! , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04
! , 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04
! , 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04
! , 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04
! , 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
***************
*** 579,603 ****
, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x1A, 0x1A, 0x1A
, 0x00, 0x00, 0x02, 0x02, 0x02, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x03, 0x1A, 0x1A, 0x00
! , 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x10, 0x10, 0x10, 0x10
, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x17, 0x17, 0x1C, 0x1D, 0x14, 0x1C, 0x1C, 0x1D, 0x14, 0x1C
, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x0D, 0x0E, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0C
, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x1C, 0x1D, 0x17, 0x17, 0x17, 0x17, 0x16
! , 0x16, 0x17, 0x17, 0x17, 0x18, 0x14, 0x15, 0x00, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10
! , 0x0B, 0x00, 0x00, 0x00, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x18, 0x18, 0x18, 0x14, 0x15, 0x02
, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x18, 0x18, 0x18, 0x14, 0x15, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07
! , 0x07, 0x06, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x1B, 0x1B, 0x01, 0x1B, 0x1B, 0x1B, 0x1B, 0x01, 0x1B, 0x1B, 0x02, 0x01, 0x01, 0x01, 0x02, 0x02
, 0x01, 0x01, 0x01, 0x02, 0x1B, 0x01, 0x1B, 0x1B, 0x1B, 0x01, 0x01, 0x01, 0x01, 0x01, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x01, 0x1B, 0x01, 0x1B, 0x01, 0x1B, 0x01, 0x01, 0x01, 0x01, 0x1B, 0x02
! , 0x01, 0x01, 0x1B, 0x01, 0x02, 0x05, 0x05, 0x05, 0x05, 0x02, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B
, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A
--- 541,565 ----
, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x1A, 0x1A, 0x1A
, 0x00, 0x00, 0x02, 0x02, 0x02, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x03, 0x1A, 0x1A, 0x00
! , 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x10, 0x10, 0x10, 0x10, 0x10
, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x17, 0x17, 0x1C, 0x1D, 0x14, 0x1C, 0x1C, 0x1D, 0x14, 0x1C
, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x0D, 0x0E, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0C
, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x1C, 0x1D, 0x17, 0x17, 0x17, 0x17, 0x16
! , 0x16, 0x17, 0x17, 0x17, 0x18, 0x14, 0x15, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17
! , 0x17, 0x17, 0x18, 0x17, 0x16, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C
! , 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10
! , 0x0B, 0x02, 0x00, 0x00, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x18, 0x18, 0x18, 0x14, 0x15, 0x02
, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x18, 0x18, 0x18, 0x14, 0x15, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19
! , 0x19, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07
! , 0x07, 0x06, 0x07, 0x07, 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x1B, 0x1B, 0x01, 0x1B, 0x1B, 0x1B, 0x1B, 0x01, 0x1B, 0x1B, 0x02, 0x01, 0x01, 0x01, 0x02, 0x02
, 0x01, 0x01, 0x01, 0x02, 0x1B, 0x01, 0x1B, 0x1B, 0x1B, 0x01, 0x01, 0x01, 0x01, 0x01, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x01, 0x1B, 0x01, 0x1B, 0x01, 0x1B, 0x01, 0x01, 0x01, 0x01, 0x1B, 0x02
! , 0x01, 0x01, 0x1B, 0x01, 0x02, 0x05, 0x05, 0x05, 0x05, 0x02, 0x1B, 0x1B, 0x00, 0x02, 0x01, 0x01
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x01, 0x02, 0x02, 0x02, 0x02, 0x1B, 0x18, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B
, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A
***************
*** 610,614 ****
, 0x1B, 0x1B, 0x18, 0x1B, 0x18, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
--- 572,577 ----
, 0x1B, 0x1B, 0x18, 0x1B, 0x18, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
***************
*** 626,630 ****
, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
- , 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x18, 0x18, 0x18, 0x18, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
--- 589,592 ----
***************
*** 634,644 ****
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
--- 596,606 ----
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x18, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x14, 0x15, 0x17, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
***************
*** 657,662 ****
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
--- 619,625 ----
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B
! , 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
***************
*** 668,672 ****
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
- , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x18, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
--- 631,634 ----
***************
*** 674,680 ****
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
--- 636,642 ----
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
***************
*** 682,689 ****
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x18
, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
--- 644,651 ----
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x18
+ , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00
+ , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
+ , 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
***************
*** 697,702 ****
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x1B, 0x00, 0x1B
, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00
! , 0x00, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B
, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B
, 0x0B, 0x0B, 0x0B, 0x0B, 0x1B, 0x00, 0x00, 0x00, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
--- 659,664 ----
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x1B, 0x00, 0x1B
, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00
! , 0x00, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15
! , 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B
, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B
, 0x0B, 0x0B, 0x0B, 0x0B, 0x1B, 0x00, 0x00, 0x00, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
***************
*** 704,710 ****
, 0x00, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
--- 666,672 ----
, 0x00, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x00, 0x00, 0x00, 0x00
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
***************
*** 723,759 ****
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
--- 685,721 ----
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14
! , 0x15, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x14, 0x15, 0x14, 0x15, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x14, 0x15, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
***************
*** 838,842 ****
, 0x14, 0x15, 0x1B, 0x1B, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x13, 0x14, 0x15, 0x15
, 0x1B, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
! , 0x13, 0x04, 0x04, 0x04, 0x04, 0x04, 0x1B, 0x1B, 0x0A, 0x0A, 0x0A, 0x00, 0x00, 0x00, 0x1B, 0x1B
, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
--- 800,804 ----
, 0x14, 0x15, 0x1B, 0x1B, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x13, 0x14, 0x15, 0x15
, 0x1B, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
! , 0x13, 0x04, 0x04, 0x04, 0x04, 0x04, 0x1B, 0x1B, 0x0A, 0x0A, 0x0A, 0x04, 0x05, 0x17, 0x1B, 0x1B
, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
***************
*** 844,854 ****
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
! , 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x1A, 0x1A, 0x04, 0x04, 0x00
! , 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
! , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x16, 0x04, 0x04, 0x04, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
--- 806,816 ----
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
! , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x06, 0x06, 0x1A, 0x1A, 0x04, 0x04, 0x05
! , 0x13, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
! , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x16, 0x04, 0x04, 0x04, 0x05
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
***************
*** 866,883 ****
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00
, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x1B
, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
--- 828,845 ----
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00
, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x1B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x1B
, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
***************
*** 890,894 ****
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
- , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
--- 852,855 ----
***************
*** 896,902 ****
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
- , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
--- 857,864 ----
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
***************
*** 1311,1318 ****
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
--- 1273,1280 ----
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
***************
*** 2701,2707 ****
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x00, 0x00, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x00, 0x1B, 0x1B, 0x1B, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
--- 2663,2669 ----
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00
, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B
! , 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
***************
*** 4070,4077 ****
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
--- 4032,4039 ----
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00
! , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
! , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
! , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
! , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
***************
*** 4130,4142 ****
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00
! , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x17, 0x13, 0x13, 0x16, 0x16, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14
! , 0x15, 0x14, 0x15, 0x14, 0x15, 0x00, 0x00, 0x00, 0x00, 0x17, 0x17, 0x17, 0x17, 0x16, 0x16, 0x16
, 0x17, 0x17, 0x17, 0x00, 0x17, 0x17, 0x17, 0x17, 0x13, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x17
, 0x17, 0x17, 0x18, 0x13, 0x18, 0x18, 0x18, 0x00, 0x17, 0x19, 0x17, 0x17, 0x00, 0x00, 0x00, 0x00
! , 0x05, 0x05, 0x05, 0x00, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
--- 4092,4104 ----
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
! , 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x19, 0x1B, 0x00, 0x00
! , 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
, 0x17, 0x13, 0x13, 0x16, 0x16, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x14
! , 0x15, 0x14, 0x15, 0x14, 0x15, 0x17, 0x17, 0x14, 0x15, 0x17, 0x17, 0x17, 0x17, 0x16, 0x16, 0x16
, 0x17, 0x17, 0x17, 0x00, 0x17, 0x17, 0x17, 0x17, 0x13, 0x14, 0x15, 0x14, 0x15, 0x14, 0x15, 0x17
, 0x17, 0x17, 0x18, 0x13, 0x18, 0x18, 0x18, 0x00, 0x17, 0x19, 0x17, 0x17, 0x00, 0x00, 0x00, 0x00
! , 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
***************
*** 4152,4157 ****
, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x14, 0x17, 0x15, 0x1A, 0x16
, 0x1A, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
! , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x14, 0x18, 0x15, 0x18, 0x00
! , 0x00, 0x17, 0x14, 0x15, 0x17, 0x16, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x04, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
--- 4114,4119 ----
, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x14, 0x17, 0x15, 0x1A, 0x16
, 0x1A, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
! , 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x14, 0x18, 0x15, 0x18, 0x14
! , 0x15, 0x17, 0x14, 0x15, 0x17, 0x16, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x04, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05
***************
*** 4164,4167 ****
--- 4126,4130 ----
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x1B, 0x1B, 0x00, 0x00
};
+
XERCES_CPP_NAMESPACE_END
Index: ParenToken.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/ParenToken.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** ParenToken.hpp 14 Apr 2004 10:08:16 -0000 1.1.1.1
--- ParenToken.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001 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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001,2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
***************
*** 75,79 ****
// -----------------------------------------------------------------------
ParenToken(const unsigned short tokType, Token* const tok,
! const int noParen);
~ParenToken();
--- 35,39 ----
// -----------------------------------------------------------------------
ParenToken(const unsigned short tokType, Token* const tok,
! const int noParen, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
~ParenToken();
Index: ParserForXMLSchema.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/ParserForXMLSchema.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** ParserForXMLSchema.hpp 14 Apr 2004 10:08:16 -0000 1.1.1.1
--- ParserForXMLSchema.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001 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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001,2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
Index: ClosureToken.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/ClosureToken.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** ClosureToken.hpp 14 Apr 2004 10:08:16 -0000 1.1.1.1
--- ClosureToken.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001 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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001,2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
***************
*** 74,78 ****
// Public Constructors and Destructor
// -----------------------------------------------------------------------
! ClosureToken(const unsigned short tokType, Token* const tok);
~ClosureToken();
--- 34,39 ----
// Public Constructors and Destructor
// -----------------------------------------------------------------------
! ClosureToken(const unsigned short tokType, Token* const tok
! , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
~ClosureToken();
***************
*** 126,130 ****
}
! inline Token* ClosureToken::getChild(const int index) const {
return fChild;
--- 87,91 ----
}
! inline Token* ClosureToken::getChild(const int) const {
return fChild;
--- NEW FILE: CharToken.cpp ---
/*
* Copyright 2001,2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: CharToken.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/regx/CharToken.hpp>
XERCES_CPP_NAMESPACE_BEGIN
// ---------------------------------------------------------------------------
// Token: Constructors and Destructors
// ---------------------------------------------------------------------------
CharToken::CharToken(const unsigned short tokType, const XMLInt32 ch, MemoryManager* const manager)
: Token(tokType, manager)
, fCharData(ch)
{
}
CharToken::~CharToken() {
}
XERCES_CPP_NAMESPACE_END
/**
* End of file CharToken.cpp
*/
Index: ASCIIRangeFactory.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/ASCIIRangeFactory.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** ASCIIRangeFactory.hpp 14 Apr 2004 10:08:15 -0000 1.1.1.1
--- ASCIIRangeFactory.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001-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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001-2002,2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
***************
*** 81,85 ****
// Initialization methods
// -----------------------------------------------------------------------
! void initializeKeywordMap();
protected:
--- 41,45 ----
// Initialization methods
// -----------------------------------------------------------------------
! void initializeKeywordMap(RangeTokenMap *rangeTokMap = 0);
protected:
***************
*** 87,91 ****
// Private Helper methods
// -----------------------------------------------------------------------
! void buildRanges();
private:
--- 47,51 ----
// Private Helper methods
// -----------------------------------------------------------------------
! void buildRanges(RangeTokenMap *rangeTokMap = 0);
private:
***************
*** 95,101 ****
ASCIIRangeFactory(const ASCIIRangeFactory&);
ASCIIRangeFactory& operator=(const ASCIIRangeFactory&);
-
- bool fRangesCreated;
- bool fKeywordsInitialized;
};
--- 55,58 ----
--- NEW FILE: RegularExpression.cpp ---
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: RegularExpression.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
[...1614 lines suppressed...]
case chLF:
case chVTab:
case chFF:
case chCR:
return WT_OTHER;
default:
return WT_IGNORE;
}
}
return WT_OTHER;
}
XERCES_CPP_NAMESPACE_END
/**
* End of file RegularExpression.cpp
*/
--- NEW FILE: RangeFactory.cpp ---
/*
* Copyright 2001,2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: RangeFactory.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/regx/RangeFactory.hpp>
XERCES_CPP_NAMESPACE_BEGIN
// ---------------------------------------------------------------------------
// RangeFactory: Constructors and Destructor
// ---------------------------------------------------------------------------
RangeFactory::RangeFactory() :
fRangesCreated(false)
, fKeywordsInitialized(false)
{
}
RangeFactory::~RangeFactory() {
}
XERCES_CPP_NAMESPACE_END
/**
* End of file RangeFactory.cpp
*/
Index: RangeToken.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/RangeToken.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** RangeToken.hpp 14 Apr 2004 10:08:16 -0000 1.1.1.1
--- RangeToken.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001-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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001-2002,2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
***************
*** 111,115 ****
void intersectRanges(RangeToken* const tok);
static Token* complementRanges(RangeToken* const tok,
! TokenFactory* const tokFactory);
// -----------------------------------------------------------------------
--- 71,76 ----
void intersectRanges(RangeToken* const tok);
static Token* complementRanges(RangeToken* const tok,
! TokenFactory* const tokFactory,
! MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
// -----------------------------------------------------------------------
***************
*** 118,121 ****
--- 79,89 ----
bool match(const XMLInt32 ch);
+ // -----------------------------------------------------------------------
+ // Creates the map. This will happen automatically,
+ // necessary.
+ // -----------------------------------------------------------------------
+ void
+ createMap();
+
private:
// -----------------------------------------------------------------------
***************
*** 128,134 ****
// Private Helper methods
// -----------------------------------------------------------------------
- void createMap();
void expand(const unsigned int length);
// -----------------------------------------------------------------------
// Private data members
--- 96,103 ----
// Private Helper methods
// -----------------------------------------------------------------------
void expand(const unsigned int length);
+ void doCreateMap();
+
// -----------------------------------------------------------------------
// Private data members
***************
*** 144,147 ****
--- 113,126 ----
MemoryManager* fMemoryManager;
};
+
+
+ inline void RangeToken::createMap()
+ {
+ if (!fMap)
+ {
+ doCreateMap();
+ }
+ }
+
XERCES_CPP_NAMESPACE_END
--- NEW FILE: UnionToken.cpp ---
/*
* Copyright 2001,2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: UnionToken.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/regx/UnionToken.hpp>
#include <xercesc/framework/XMLBuffer.hpp>
#include <xercesc/util/regx/RegxUtil.hpp>
#include <xercesc/util/regx/TokenFactory.hpp>
#include <xercesc/util/regx/StringToken.hpp>
XERCES_CPP_NAMESPACE_BEGIN
// ---------------------------------------------------------------------------
// Static member data initialization
// ---------------------------------------------------------------------------
const unsigned short UnionToken::INITIALSIZE = 8;
// ---------------------------------------------------------------------------
// UnionToken: Constructors and Destructors
// ---------------------------------------------------------------------------
UnionToken::UnionToken(const unsigned short tokType, MemoryManager* const manager)
: Token(tokType, manager)
, fChildren(0)
{
}
UnionToken::~UnionToken() {
delete fChildren;
}
// ---------------------------------------------------------------------------
// UnionToken: Children manipulation methods
// ---------------------------------------------------------------------------
void UnionToken::addChild(Token* const child, TokenFactory* const tokFactory) {
if (child == 0)
return;
if (fChildren == 0)
fChildren = new (tokFactory->getMemoryManager()) RefVectorOf<Token>(INITIALSIZE, false, tokFactory->getMemoryManager());
if (getTokenType() == T_UNION) {
fChildren->addElement(child);
return;
}
unsigned short childType = child->getTokenType();
unsigned int childSize = child->size();
if (childType == T_CONCAT) {
for (unsigned int i = 0; i < childSize; i++) {
addChild(child->getChild(i), tokFactory);
}
return;
}
unsigned int childrenSize = fChildren->size();
if (childrenSize == 0) {
fChildren->addElement(child);
return;
}
Token* previousTok = fChildren->elementAt(childrenSize - 1);
unsigned short previousType = previousTok->getTokenType();
if (!((previousType == T_CHAR || previousType == T_STRING)
&& (childType == T_CHAR || childType == T_STRING))) {
fChildren->addElement(child);
return;
}
// Continue
XMLBuffer stringBuf(1023, tokFactory->getMemoryManager());
if (previousType == T_CHAR) {
XMLInt32 ch = previousTok->getChar();
if (ch >= 0x10000) {
XMLCh* chSurrogate = RegxUtil::decomposeToSurrogates(ch, tokFactory->getMemoryManager());
stringBuf.append(chSurrogate);
tokFactory->getMemoryManager()->deallocate(chSurrogate);//delete [] chSurrogate;
}
else {
stringBuf.append((XMLCh) ch);
}
previousTok = tokFactory->createString(0);
fChildren->setElementAt(previousTok, childrenSize - 1);
}
else {
stringBuf.append(previousTok->getString());
}
if (childType == T_CHAR) {
XMLInt32 ch = child->getChar();
if (ch >= 0x10000) {
XMLCh* chSurrogate = RegxUtil::decomposeToSurrogates(ch, tokFactory->getMemoryManager());
stringBuf.append(chSurrogate);
tokFactory->getMemoryManager()->deallocate(chSurrogate);//delete [] chSurrogate;
}
else {
stringBuf.append((XMLCh) ch);
}
}
else {
stringBuf.append(child->getString());
}
((StringToken*) previousTok)->setString(stringBuf.getRawBuffer());
}
XERCES_CPP_NAMESPACE_END
/**
* End of file UnionToken.cpp
*/
--- NEW FILE: BlockRangeFactory.cpp ---
/*
* Copyright 2001-2002,2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: BlockRangeFactory.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/regx/BlockRangeFactory.hpp>
#include <xercesc/util/regx/RangeToken.hpp>
#include <xercesc/util/regx/RegxDefs.hpp>
#include <xercesc/util/regx/TokenFactory.hpp>
#include <xercesc/util/regx/RangeTokenMap.hpp>
#include <xercesc/util/XMLString.hpp>
XERCES_CPP_NAMESPACE_BEGIN
// ---------------------------------------------------------------------------
// Local static data
// ---------------------------------------------------------------------------
const int BLOCKNAMESIZE = 93;
// Block Names IsX
// only define Specials as FEFF..FEFF, missing Specials as FFF0..FFFD, add manually
// only define private use as E000..F8FF,
// missing 2 private use (F0000..FFFFD and 100000..10FFFD), add manually
const XMLCh fgBlockNames[][BLOCKNAMESIZE] =
{
{ chLatin_I, chLatin_s, chLatin_B, chLatin_a, chLatin_s, chLatin_i, chLatin_c, chLatin_L, chLatin_a,
chLatin_t, chLatin_i, chLatin_n, chNull },
{ chLatin_I, chLatin_s, chLatin_L, chLatin_a, chLatin_t, chLatin_i, chLatin_n, chDash, chDigit_1,
chLatin_S, chLatin_u, chLatin_p, chLatin_p, chLatin_l, chLatin_e, chLatin_m, chLatin_e,
chLatin_n, chLatin_t, chNull },
{ chLatin_I, chLatin_s, chLatin_L, chLatin_a, chLatin_t, chLatin_i, chLatin_n, chLatin_E, chLatin_x,
chLatin_t, chLatin_e, chLatin_n, chLatin_d, chLatin_e, chLatin_d, chDash, chLatin_A,
chNull },
{ chLatin_I, chLatin_s, chLatin_L, chLatin_a, chLatin_t, chLatin_i, chLatin_n, chLatin_E, chLatin_x,
chLatin_t, chLatin_e, chLatin_n, chLatin_d, chLatin_e, chLatin_d, chDash, chLatin_B,
chNull },
{ chLatin_I, chLatin_s, chLatin_I, chLatin_P, chLatin_A, chLatin_E, chLatin_x, chLatin_t, chLatin_e,
chLatin_n, chLatin_s, chLatin_i, chLatin_o, chLatin_n, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_S, chLatin_p, chLatin_a, chLatin_c, chLatin_i, chLatin_n, chLatin_g,
chLatin_M, chLatin_o, chLatin_d, chLatin_i, chLatin_f, chLatin_i, chLatin_e, chLatin_r,
chLatin_L, chLatin_e, chLatin_t, chLatin_t, chLatin_e, chLatin_r, chLatin_s,
chNull },
{ chLatin_I, chLatin_s, chLatin_C, chLatin_o, chLatin_m, chLatin_b, chLatin_i, chLatin_n, chLatin_i, chLatin_n,
chLatin_g, chLatin_D, chLatin_i, chLatin_a, chLatin_c, chLatin_r, chLatin_i,
chLatin_t, chLatin_i, chLatin_c, chLatin_a, chLatin_l, chLatin_M, chLatin_a,
chLatin_r, chLatin_k, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_G, chLatin_r, chLatin_e, chLatin_e, chLatin_k, chNull },
{ chLatin_I, chLatin_s, chLatin_C, chLatin_y, chLatin_r, chLatin_i, chLatin_l, chLatin_l, chLatin_i, chLatin_c,
chNull },
{ chLatin_I, chLatin_s, chLatin_A, chLatin_r, chLatin_m, chLatin_e, chLatin_n, chLatin_i, chLatin_a, chLatin_n,
chNull },
{ chLatin_I, chLatin_s, chLatin_H, chLatin_e, chLatin_b, chLatin_r, chLatin_e, chLatin_w, chNull },
{ chLatin_I, chLatin_s, chLatin_A, chLatin_r, chLatin_a, chLatin_b, chLatin_i, chLatin_c, chNull },
{ chLatin_I, chLatin_s, chLatin_S, chLatin_y, chLatin_r, chLatin_i, chLatin_a, chLatin_c, chNull },
{ chLatin_I, chLatin_s, chLatin_T, chLatin_h, chLatin_a, chLatin_a, chLatin_n, chLatin_a, chNull },
{ chLatin_I, chLatin_s, chLatin_D, chLatin_e, chLatin_v, chLatin_a, chLatin_n, chLatin_a, chLatin_g, chLatin_a,
chLatin_r, chLatin_i, chNull },
{ chLatin_I, chLatin_s, chLatin_B, chLatin_e, chLatin_n, chLatin_g, chLatin_a, chLatin_l, chLatin_i, chNull },
{ chLatin_I, chLatin_s, chLatin_G, chLatin_u, chLatin_r, chLatin_m, chLatin_u, chLatin_k, chLatin_h, chLatin_i,
chNull },
{ chLatin_I, chLatin_s, chLatin_G, chLatin_u, chLatin_j, chLatin_a, chLatin_r, chLatin_a, chLatin_t, chLatin_i,
chNull },
{ chLatin_I, chLatin_s, chLatin_O, chLatin_r, chLatin_i, chLatin_y, chLatin_a, chNull },
{ chLatin_I, chLatin_s, chLatin_T, chLatin_a, chLatin_m, chLatin_i, chLatin_l, chNull },
{ chLatin_I, chLatin_s, chLatin_T, chLatin_e, chLatin_l, chLatin_u, chLatin_g, chLatin_u, chNull },
{ chLatin_I, chLatin_s, chLatin_K, chLatin_a, chLatin_n, chLatin_n, chLatin_a, chLatin_d, chLatin_a, chNull },
{ chLatin_I, chLatin_s, chLatin_M, chLatin_a, chLatin_l, chLatin_a, chLatin_y, chLatin_a, chLatin_l, chLatin_a,
chLatin_m, chNull },
{ chLatin_I, chLatin_s, chLatin_S, chLatin_i, chLatin_n, chLatin_h, chLatin_a, chLatin_l, chLatin_a, chNull },
{ chLatin_I, chLatin_s, chLatin_T, chLatin_h, chLatin_a, chLatin_i, chNull },
{ chLatin_I, chLatin_s, chLatin_L, chLatin_a, chLatin_o, chNull },
{ chLatin_I, chLatin_s, chLatin_T, chLatin_i, chLatin_b, chLatin_e, chLatin_t, chLatin_a, chLatin_n, chNull },
{ chLatin_I, chLatin_s, chLatin_M, chLatin_y, chLatin_a, chLatin_n, chLatin_m, chLatin_a, chLatin_r, chNull },
{ chLatin_I, chLatin_s, chLatin_G, chLatin_e, chLatin_o, chLatin_r, chLatin_g, chLatin_i, chLatin_a, chLatin_n,
chNull },
{ chLatin_I, chLatin_s, chLatin_H, chLatin_a, chLatin_n, chLatin_g, chLatin_u, chLatin_l, chLatin_J,
chLatin_a, chLatin_m, chLatin_o, chNull },
{ chLatin_I, chLatin_s, chLatin_E, chLatin_t, chLatin_h, chLatin_i, chLatin_o, chLatin_p, chLatin_i, chLatin_c,
chNull },
{ chLatin_I, chLatin_s, chLatin_C, chLatin_h, chLatin_e, chLatin_r, chLatin_o, chLatin_k, chLatin_e, chLatin_e,
chNull },
{ chLatin_I, chLatin_s, chLatin_U, chLatin_n, chLatin_i, chLatin_f, chLatin_i, chLatin_e, chLatin_d,
chLatin_C, chLatin_a, chLatin_n, chLatin_a, chLatin_d, chLatin_i, chLatin_a, chLatin_n,
chLatin_A, chLatin_b, chLatin_o, chLatin_r, chLatin_i, chLatin_g, chLatin_i, chLatin_n, chLatin_a, chLatin_l,
chLatin_S, chLatin_y, chLatin_l, chLatin_l, chLatin_a, chLatin_b, chLatin_i, chLatin_c, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_O, chLatin_g, chLatin_h, chLatin_a, chLatin_m, chNull },
{ chLatin_I, chLatin_s, chLatin_R, chLatin_u, chLatin_n, chLatin_i, chLatin_c, chNull },
{ chLatin_I, chLatin_s, chLatin_K, chLatin_h, chLatin_m, chLatin_e, chLatin_r, chNull },
{ chLatin_I, chLatin_s, chLatin_M, chLatin_o, chLatin_n, chLatin_g, chLatin_o, chLatin_l, chLatin_i,
chLatin_a, chLatin_n, chNull },
{ chLatin_I, chLatin_s, chLatin_L, chLatin_a, chLatin_t, chLatin_i, chLatin_n, chLatin_E, chLatin_x,
chLatin_t, chLatin_e, chLatin_n, chLatin_d, chLatin_e, chLatin_d, chLatin_A,
chLatin_d, chLatin_d, chLatin_i, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chLatin_a,
chLatin_l, chNull },
{ chLatin_I, chLatin_s, chLatin_G, chLatin_r, chLatin_e, chLatin_e, chLatin_k, chLatin_E, chLatin_x,
chLatin_t, chLatin_e, chLatin_n, chLatin_d, chLatin_e, chLatin_d, chNull },
{ chLatin_I, chLatin_s, chLatin_G, chLatin_e, chLatin_n, chLatin_e, chLatin_r, chLatin_a, chLatin_l,
chLatin_P, chLatin_u, chLatin_n, chLatin_c, chLatin_t, chLatin_u, chLatin_a, chLatin_t,
chLatin_i, chLatin_o, chLatin_n, chNull },
{ chLatin_I, chLatin_s, chLatin_S, chLatin_u, chLatin_p, chLatin_e, chLatin_r, chLatin_s, chLatin_c, chLatin_r,
chLatin_i, chLatin_p, chLatin_t, chLatin_s, chLatin_a, chLatin_n, chLatin_d,
chLatin_S, chLatin_u, chLatin_b, chLatin_s, chLatin_c, chLatin_r, chLatin_i,
chLatin_p, chLatin_t, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_C, chLatin_u, chLatin_r, chLatin_r, chLatin_e, chLatin_n, chLatin_c, chLatin_y,
chLatin_S, chLatin_y, chLatin_m, chLatin_b, chLatin_o, chLatin_l, chLatin_s,
chNull },
{ chLatin_I, chLatin_s, chLatin_C, chLatin_o, chLatin_m, chLatin_b, chLatin_i, chLatin_n, chLatin_i, chLatin_n,
chLatin_g, chLatin_M, chLatin_a, chLatin_r, chLatin_k, chLatin_s,
chLatin_f, chLatin_o, chLatin_r, chLatin_S, chLatin_y, chLatin_m, chLatin_b,
chLatin_o, chLatin_l, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_L, chLatin_e, chLatin_t, chLatin_t, chLatin_e, chLatin_r, chLatin_l, chLatin_i,
chLatin_k, chLatin_e, chLatin_S, chLatin_y, chLatin_m, chLatin_b, chLatin_o,
chLatin_l, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_N, chLatin_u, chLatin_m, chLatin_b, chLatin_e, chLatin_r, chLatin_F,
chLatin_o, chLatin_r, chLatin_m, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_A, chLatin_r, chLatin_r, chLatin_o, chLatin_w, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_M, chLatin_a, chLatin_t, chLatin_h, chLatin_e, chLatin_m, chLatin_a, chLatin_t,
chLatin_i, chLatin_c, chLatin_a, chLatin_l, chLatin_O, chLatin_p, chLatin_e,
chLatin_r, chLatin_a, chLatin_t, chLatin_o, chLatin_r, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_M, chLatin_i, chLatin_s, chLatin_c, chLatin_e, chLatin_l, chLatin_l, chLatin_a,
chLatin_n, chLatin_e, chLatin_o, chLatin_u, chLatin_s, chLatin_T, chLatin_e,
chLatin_c, chLatin_h, chLatin_n, chLatin_i, chLatin_c, chLatin_a, chLatin_l, chNull },
{ chLatin_I, chLatin_s, chLatin_C, chLatin_o, chLatin_n, chLatin_t, chLatin_r, chLatin_o, chLatin_l,
chLatin_P, chLatin_i, chLatin_c, chLatin_t, chLatin_u, chLatin_r, chLatin_e, chLatin_s,
chNull },
{ chLatin_I, chLatin_s, chLatin_O, chLatin_p, chLatin_t, chLatin_i, chLatin_c, chLatin_a, chLatin_l,
chLatin_C, chLatin_h, chLatin_a, chLatin_r, chLatin_a, chLatin_c, chLatin_t, chLatin_e,
chLatin_r, chLatin_R, chLatin_e, chLatin_c, chLatin_o, chLatin_g, chLatin_n,
chLatin_i, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull },
{ chLatin_I, chLatin_s, chLatin_E, chLatin_n, chLatin_c, chLatin_l, chLatin_o, chLatin_s, chLatin_e, chLatin_d,
chLatin_A, chLatin_l, chLatin_p, chLatin_h, chLatin_a, chLatin_n, chLatin_u,
chLatin_m, chLatin_e, chLatin_r, chLatin_i, chLatin_c, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_B, chLatin_o, chLatin_x, chLatin_D, chLatin_r, chLatin_a, chLatin_w,
chLatin_i, chLatin_n, chLatin_g, chNull },
{ chLatin_I, chLatin_s, chLatin_B, chLatin_l, chLatin_o, chLatin_c, chLatin_k, chLatin_E, chLatin_l,
chLatin_e, chLatin_m, chLatin_e, chLatin_n, chLatin_t, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_G, chLatin_e, chLatin_o, chLatin_m, chLatin_e, chLatin_t, chLatin_r, chLatin_i,
chLatin_c, chLatin_S, chLatin_h, chLatin_a, chLatin_p, chLatin_e, chLatin_s,
chNull },
{ chLatin_I, chLatin_s, chLatin_M, chLatin_i, chLatin_s, chLatin_c, chLatin_e, chLatin_l, chLatin_l, chLatin_a,
chLatin_n, chLatin_e, chLatin_o, chLatin_u, chLatin_s, chLatin_S, chLatin_y,
chLatin_m, chLatin_b, chLatin_o, chLatin_l, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_D, chLatin_i, chLatin_n, chLatin_g, chLatin_b, chLatin_a, chLatin_t, chLatin_s,
chNull },
{ chLatin_I, chLatin_s, chLatin_B, chLatin_r, chLatin_a, chLatin_i, chLatin_l, chLatin_l, chLatin_e,
chLatin_P, chLatin_a, chLatin_t, chLatin_t, chLatin_e, chLatin_r, chLatin_n, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_C, chLatin_J, chLatin_K, chLatin_R, chLatin_a, chLatin_d, chLatin_i, chLatin_c,
chLatin_a, chLatin_l, chLatin_s, chLatin_S, chLatin_u, chLatin_p, chLatin_p, chLatin_l, chLatin_e, chLatin_m,
chLatin_e, chLatin_n, chLatin_t, chNull },
{ chLatin_I, chLatin_s, chLatin_K, chLatin_a, chLatin_n, chLatin_g, chLatin_x, chLatin_i,
chLatin_R, chLatin_a, chLatin_d, chLatin_i, chLatin_c, chLatin_a, chLatin_l, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_I, chLatin_d, chLatin_e, chLatin_o, chLatin_g, chLatin_r, chLatin_a, chLatin_p,
chLatin_h, chLatin_i, chLatin_c, chLatin_D, chLatin_e, chLatin_s, chLatin_c, chLatin_r, chLatin_i, chLatin_p,
chLatin_t, chLatin_i, chLatin_o, chLatin_n, chLatin_C, chLatin_h, chLatin_a, chLatin_r, chLatin_a, chLatin_c,
chLatin_t, chLatin_e, chLatin_r, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_C, chLatin_J, chLatin_K, chLatin_S, chLatin_y, chLatin_m, chLatin_b,
chLatin_o, chLatin_l, chLatin_s, chLatin_a, chLatin_n, chLatin_d,
chLatin_P, chLatin_u, chLatin_n, chLatin_c, chLatin_t, chLatin_u, chLatin_a, chLatin_t,
chLatin_i, chLatin_o, chLatin_n, chNull },
{ chLatin_I, chLatin_s, chLatin_H, chLatin_i, chLatin_r, chLatin_a, chLatin_g, chLatin_a, chLatin_n, chLatin_a,
chNull },
{ chLatin_I, chLatin_s, chLatin_K, chLatin_a, chLatin_t, chLatin_a, chLatin_k, chLatin_a, chLatin_n, chLatin_a,
chNull },
{ chLatin_I, chLatin_s, chLatin_B, chLatin_o, chLatin_p, chLatin_o, chLatin_m, chLatin_o, chLatin_f, chLatin_o,
chNull },
{ chLatin_I, chLatin_s, chLatin_H, chLatin_a, chLatin_n, chLatin_g, chLatin_u, chLatin_l, chLatin_C,
chLatin_o, chLatin_m, chLatin_p, chLatin_a, chLatin_t, chLatin_i, chLatin_b, chLatin_i,
chLatin_l, chLatin_i, chLatin_t, chLatin_y, chLatin_J, chLatin_a, chLatin_m,
chLatin_o, chNull },
{ chLatin_I, chLatin_s, chLatin_K, chLatin_a, chLatin_n, chLatin_b, chLatin_u, chLatin_n, chNull },
{ chLatin_I, chLatin_s, chLatin_B, chLatin_o, chLatin_p, chLatin_o, chLatin_m, chLatin_o, chLatin_f, chLatin_o,
chLatin_E, chLatin_x, chLatin_t, chLatin_e, chLatin_n, chLatin_d, chLatin_e, chLatin_d, chNull },
{ chLatin_I, chLatin_s, chLatin_E, chLatin_n, chLatin_c, chLatin_l, chLatin_o, chLatin_s, chLatin_e, chLatin_d,
chLatin_C, chLatin_J, chLatin_K, chLatin_L, chLatin_e, chLatin_t,
chLatin_t, chLatin_e, chLatin_r, chLatin_s, chLatin_a, chLatin_n, chLatin_d,
chLatin_M, chLatin_o, chLatin_n, chLatin_t, chLatin_h, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_C, chLatin_J, chLatin_K, chLatin_C, chLatin_o, chLatin_m, chLatin_p,
chLatin_a, chLatin_t, chLatin_i, chLatin_b, chLatin_i, chLatin_l, chLatin_i, chLatin_t,
chLatin_y, chNull },
{ chLatin_I, chLatin_s, chLatin_C, chLatin_J, chLatin_K, chLatin_U, chLatin_n, chLatin_i, chLatin_f,
chLatin_i, chLatin_e, chLatin_d, chLatin_I, chLatin_d, chLatin_e, chLatin_o,
chLatin_g, chLatin_r, chLatin_a, chLatin_p, chLatin_h, chLatin_s,
chLatin_E, chLatin_x, chLatin_t, chLatin_e, chLatin_n, chLatin_s, chLatin_i, chLatin_o, chLatin_n, chLatin_A,
chNull },
{ chLatin_I, chLatin_s, chLatin_C, chLatin_J, chLatin_K, chLatin_U, chLatin_n, chLatin_i, chLatin_f,
chLatin_i, chLatin_e, chLatin_d, chLatin_I, chLatin_d, chLatin_e, chLatin_o,
chLatin_g, chLatin_r, chLatin_a, chLatin_p, chLatin_h, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_Y, chLatin_i, chLatin_S, chLatin_y, chLatin_l, chLatin_l, chLatin_a,
chLatin_b, chLatin_l, chLatin_e, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_Y, chLatin_i, chLatin_R, chLatin_a, chLatin_d, chLatin_i, chLatin_c,
chLatin_a, chLatin_l, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_H, chLatin_a, chLatin_n, chLatin_g, chLatin_u, chLatin_l, chLatin_S,
chLatin_y, chLatin_l, chLatin_l, chLatin_a, chLatin_b, chLatin_l, chLatin_e, chLatin_s,
chNull },
{ chLatin_I, chLatin_s, chLatin_P, chLatin_r, chLatin_i, chLatin_v, chLatin_a, chLatin_t, chLatin_e,
chLatin_U, chLatin_s, chLatin_e, chNull },
{ chLatin_I, chLatin_s, chLatin_C, chLatin_J, chLatin_K, chLatin_C, chLatin_o, chLatin_m, chLatin_p,
chLatin_a, chLatin_t, chLatin_i, chLatin_b, chLatin_i, chLatin_l, chLatin_i, chLatin_t,
chLatin_y, chLatin_I, chLatin_d, chLatin_e, chLatin_o, chLatin_g, chLatin_r,
chLatin_a, chLatin_p, chLatin_h, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_A, chLatin_l, chLatin_p, chLatin_h, chLatin_a, chLatin_b, chLatin_e, chLatin_t,
chLatin_i, chLatin_c, chLatin_P, chLatin_r, chLatin_e, chLatin_s, chLatin_e,
chLatin_n, chLatin_t, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n,
chLatin_F, chLatin_o, chLatin_r, chLatin_m, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_A, chLatin_r, chLatin_a, chLatin_b, chLatin_i, chLatin_c, chLatin_P,
chLatin_r, chLatin_e, chLatin_s, chLatin_e, chLatin_n, chLatin_t, chLatin_a, chLatin_t,
chLatin_i, chLatin_o, chLatin_n, chLatin_F, chLatin_o, chLatin_r, chLatin_m,
chLatin_s, chDash, chLatin_A, chNull },
{ chLatin_I, chLatin_s, chLatin_C, chLatin_o, chLatin_m, chLatin_b, chLatin_i, chLatin_n, chLatin_i, chLatin_n,
chLatin_g, chLatin_H, chLatin_a, chLatin_l, chLatin_f, chLatin_M,
chLatin_a, chLatin_r, chLatin_k, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_C, chLatin_J, chLatin_K, chLatin_C, chLatin_o, chLatin_m, chLatin_p,
chLatin_a, chLatin_t, chLatin_i, chLatin_b, chLatin_i, chLatin_l, chLatin_i, chLatin_t,
chLatin_y, chLatin_F, chLatin_o, chLatin_r, chLatin_m, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_S, chLatin_m, chLatin_a, chLatin_l, chLatin_l, chLatin_F, chLatin_o,
chLatin_r, chLatin_m, chLatin_V, chLatin_a, chLatin_r, chLatin_i, chLatin_a,
chLatin_n, chLatin_t, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_A, chLatin_r, chLatin_a, chLatin_b, chLatin_i, chLatin_c, chLatin_P,
chLatin_r, chLatin_e, chLatin_s, chLatin_e, chLatin_n, chLatin_t, chLatin_a, chLatin_t,
chLatin_i, chLatin_o, chLatin_n, chLatin_F, chLatin_o, chLatin_r, chLatin_m,
chLatin_s, chDash, chLatin_B, chNull },
{ chLatin_I, chLatin_s, chLatin_S, chLatin_p, chLatin_e, chLatin_c, chLatin_i, chLatin_a, chLatin_l, chLatin_s,
chNull },
{ chLatin_I, chLatin_s, chLatin_H, chLatin_a, chLatin_l, chLatin_f, chLatin_w, chLatin_i, chLatin_d, chLatin_t,
chLatin_h, chLatin_a, chLatin_n, chLatin_d, chLatin_F, chLatin_u,
chLatin_l, chLatin_l, chLatin_w, chLatin_i, chLatin_d, chLatin_t, chLatin_h,
chLatin_F, chLatin_o, chLatin_r, chLatin_m, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_O, chLatin_l, chLatin_d, chLatin_I, chLatin_t, chLatin_a, chLatin_l, chLatin_i,
chLatin_c, chNull },
{ chLatin_I, chLatin_s, chLatin_G, chLatin_o, chLatin_t, chLatin_h, chLatin_i, chLatin_c, chNull },
{ chLatin_I, chLatin_s, chLatin_D, chLatin_e, chLatin_s, chLatin_e, chLatin_r, chLatin_e, chLatin_t, chNull },
{ chLatin_I, chLatin_s, chLatin_B, chLatin_y, chLatin_z, chLatin_a, chLatin_n, chLatin_t, chLatin_i, chLatin_n, chLatin_e,
chLatin_M, chLatin_u, chLatin_s, chLatin_i, chLatin_c, chLatin_a, chLatin_l,
chLatin_S, chLatin_y, chLatin_m, chLatin_b, chLatin_o, chLatin_l, chLatin_s, chNull },
{ chLatin_M, chLatin_u, chLatin_s, chLatin_i, chLatin_c, chLatin_a, chLatin_l,
chLatin_S, chLatin_y, chLatin_m, chLatin_b, chLatin_o, chLatin_l, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_M, chLatin_a, chLatin_t, chLatin_h, chLatin_e,
chLatin_m, chLatin_a, chLatin_t, chLatin_i, chLatin_c, chLatin_a, chLatin_l,
chLatin_A, chLatin_l, chLatin_p, chLatin_h, chLatin_a,
chLatin_n, chLatin_u, chLatin_m, chLatin_e, chLatin_r, chLatin_i, chLatin_c,
chLatin_S, chLatin_y, chLatin_m, chLatin_b, chLatin_o, chLatin_l, chLatin_s, chNull },
{ chLatin_I, chLatin_s, chLatin_C, chLatin_J, chLatin_K, chLatin_U, chLatin_n, chLatin_i, chLatin_f,
chLatin_i, chLatin_e, chLatin_d, chLatin_I, chLatin_d, chLatin_e, chLatin_o,
chLatin_g, chLatin_r, chLatin_a, chLatin_p, chLatin_h, chLatin_s,
chLatin_E, chLatin_x, chLatin_t, chLatin_e, chLatin_n, chLatin_s, chLatin_i, chLatin_o, chLatin_n, chLatin_B,
chNull },
{ chLatin_I, chLatin_s, chLatin_C, chLatin_J, chLatin_K, chLatin_C, chLatin_o, chLatin_m, chLatin_p,
chLatin_a, chLatin_t, chLatin_i, chLatin_b, chLatin_i, chLatin_l, chLatin_i, chLatin_t, chLatin_y,
chLatin_I, chLatin_d, chLatin_e, chLatin_o, chLatin_g, chLatin_r, chLatin_a, chLatin_p, chLatin_h, chLatin_s,
chLatin_S, chLatin_u, chLatin_p, chLatin_p, chLatin_l, chLatin_e, chLatin_m, chLatin_e, chLatin_n, chLatin_t, chNull },
{ chLatin_I, chLatin_s, chLatin_T, chLatin_a, chLatin_g, chLatin_s, chNull },
};
const XMLInt32 blockRanges[] =
{
0x0000,0x007F,0x0080,0x00FF,0x0100,0x017F,0x0180,0x024F,0x0250,0x02AF,0x02B0,0x02FF,
0x0300,0x036F,0x0370,0x03FF,0x0400,0x04FF,0x0530,0x058F,0x0590,0x05FF,0x0600,0x06FF,
0x0700,0x074F,0x0780,0x07BF,0x0900,0x097F,0x0980,0x09FF,0x0A00,0x0A7F,0x0A80,0x0AFF,
0x0B00,0x0B7F,0x0B80,0x0BFF,0x0C00,0x0C7F,0x0C80,0x0CFF,0x0D00,0x0D7F,0x0D80,0x0DFF,
0x0E00,0x0E7F,0x0E80,0x0EFF,0x0F00,0x0FFF,0x1000,0x109F,0x10A0,0x10FF,0x1100,0x11FF,
0x1200,0x137F,0x13A0,0x13FF,0x1400,0x167F,0x1680,0x169F,0x16A0,0x16FF,0x1780,0x17FF,
0x1800,0x18AF,0x1E00,0x1EFF,0x1F00,0x1FFF,0x2000,0x206F,0x2070,0x209F,0x20A0,0x20CF,
0x20D0,0x20FF,0x2100,0x214F,0x2150,0x218F,0x2190,0x21FF,0x2200,0x22FF,0x2300,0x23FF,
0x2400,0x243F,0x2440,0x245F,0x2460,0x24FF,0x2500,0x257F,0x2580,0x259F,0x25A0,0x25FF,
0x2600,0x26FF,0x2700,0x27BF,0x2800,0x28FF,0x2E80,0x2EFF,0x2F00,0x2FDF,0x2FF0,0x2FFF,
0x3000,0x303F,0x3040,0x309F,0x30A0,0x30FF,0x3100,0x312F,0x3130,0x318F,0x3190,0x319F,
0x31A0,0x31BF,0x3200,0x32FF,0x3300,0x33FF,0x3400,0x4DB5,0x4E00,0x9FFF,0xA000,0xA48F,
0xA490,0xA4CF,0xAC00,0xD7A3,0xE000,0xF8FF,0xF900,0xFAFF,0xFB00,0xFB4F,0xFB50,0xFDFF,
0xFE20,0xFE2F,0xFE30,0xFE4F,0xFE50,0xFE6F,0xFE70,0xFEFE,0xFEFF,0xFEFF,0xFF00,0xFFEF,
0x10300,0x1032F,0x10330,0x1034F,0x10400,0x1044F,0x1D000,0x1D0FF,0x1D100,0x1D1FF,
0x1D400,0x1D7FF,0x20000,0x2A6D6,0x2F800,0x2FA1F,0xE0000,0xE007F, chNull
};
// ---------------------------------------------------------------------------
// BlockRangeFactory: Constructors and Destructor
// ---------------------------------------------------------------------------
BlockRangeFactory::BlockRangeFactory()
{
}
BlockRangeFactory::~BlockRangeFactory() {
}
// ---------------------------------------------------------------------------
// BlockRangeFactory: Range creation methods
// ---------------------------------------------------------------------------
void BlockRangeFactory::buildRanges(RangeTokenMap *rangeTokMap) {
if (fRangesCreated)
return;
if (!fKeywordsInitialized) {
initializeKeywordMap(rangeTokMap);
}
TokenFactory* tokFactory = rangeTokMap->getTokenFactory();
//for performance, once the desired specials and private use are found
//don't need to compareString anymore
bool foundSpecial = false;
bool foundPrivate = false;
for (int i=0; i < BLOCKNAMESIZE; i++) {
RangeToken* tok = tokFactory->createRange();
tok->addRange(blockRanges[i*2], blockRanges[(i*2)+1]);
if (!foundSpecial && XMLString::equals((XMLCh*)fgBlockNames[i] , (XMLCh*) fgBlockIsSpecials)) {
tok->addRange(0xFFF0, 0xFFFD);
foundSpecial = true;
}
if (!foundPrivate && XMLString::equals((XMLCh*)fgBlockNames[i] , (XMLCh*) fgBlockIsPrivateUse)) {
tok->addRange(0xF0000, 0xFFFFD);
tok->addRange(0x100000, 0x10FFFD);
foundPrivate = true;
}
// Build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgBlockNames[i], tok);
tok = (RangeToken*) RangeToken::complementRanges(tok, tokFactory);
// Build the internal map.
tok->createMap();
rangeTokMap->setRangeToken(fgBlockNames[i], tok , true);
}
fRangesCreated = true;
}
// ---------------------------------------------------------------------------
// BlockRangeFactory: Range creation methods
// ---------------------------------------------------------------------------
void BlockRangeFactory::initializeKeywordMap(RangeTokenMap *rangeTokMap) {
if (fKeywordsInitialized)
return;
for (int i=0; i< BLOCKNAMESIZE; i++) {
rangeTokMap->addKeywordMap(fgBlockNames[i], fgBlockCategory);
}
fKeywordsInitialized = true;
}
XERCES_CPP_NAMESPACE_END
/**
* End of file BlockRangeFactory.cpp
*/
Index: StringToken.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/StringToken.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** StringToken.hpp 14 Apr 2004 10:08:17 -0000 1.1.1.1
--- StringToken.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001 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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001,2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
Index: ModifierToken.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xercesc/util/regx/ModifierToken.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** ModifierToken.hpp 14 Apr 2004 10:08:16 -0000 1.1.1.1
--- ModifierToken.hpp 19 Feb 2008 20:16:31 -0000 1.2
***************
*** 1,56 ****
/*
! * The Apache Software License, Version 1.1
! *
! * Copyright (c) 2001 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 apache\@apache.org.
! *
! * 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) 2001, International
! * Business Machines, Inc., http://www.ibm.com . For more information
! * on the Apache Software Foundation, please see
! * <http://www.apache.org/>.
*/
--- 1,16 ----
/*
! * Copyright 2001,2004 The Apache Software Foundation.
! *
! * Licensed 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.
*/
***************
*** 74,78 ****
// Public Constructors and Destructor
// -----------------------------------------------------------------------
! ModifierToken(Token* const child, const int options, const int mask);
~ModifierToken();
--- 34,39 ----
// Public Constructors and Destructor
// -----------------------------------------------------------------------
! ModifierToken(Token* const child, const int options, const int mask
! , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
~ModifierToken();
--- NEW FILE: Token.cpp ---
/*
* Copyright 2001,2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: Token.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/regx/RangeToken.hpp>
#include <xercesc/util/regx/ModifierToken.hpp>
#include <xercesc/util/regx/RegularExpression.hpp>
#include <xercesc/util/regx/RegxUtil.hpp>
XERCES_CPP_NAMESPACE_BEGIN
// ---------------------------------------------------------------------------
// Static member data initialization
// ---------------------------------------------------------------------------
const XMLInt32 Token::UTF16_MAX = 0x10FFFF;
const unsigned short Token::FC_CONTINUE = 0;
const unsigned short Token::FC_TERMINAL = 1;
const unsigned short Token::FC_ANY = 2;
// ---------------------------------------------------------------------------
// Token: Constructors and Destructors
// ---------------------------------------------------------------------------
Token::Token(const unsigned short tokType
, MemoryManager* const manager)
: fTokenType(tokType)
, fMemoryManager(manager)
{
}
Token::~Token() {
}
// ---------------------------------------------------------------------------
// Token: Getter mthods
// ---------------------------------------------------------------------------
int Token::getMinLength() const {
switch (fTokenType) {
case T_CONCAT:
{
int sum = 0;
unsigned int childSize = size();
for (unsigned int i=0; i<childSize; i++) {
sum += getChild(i)->getMinLength();
}
return sum;
}
case T_CONDITION:
case T_UNION:
{
unsigned int childSize = size();
if (childSize == 0) {
return 0;
}
int ret = getChild(0)->getMinLength();
for (unsigned int i=1; i < childSize; i++) {
int min = getChild(i)->getMinLength();
if (min < ret)
ret = min;
}
return ret;
}
case T_CLOSURE:
case T_NONGREEDYCLOSURE:
if (getMin() >= 0)
return getMin() * getChild(0)->getMinLength();
return 0;
case T_EMPTY:
case T_ANCHOR:
return 0;
case T_DOT:
case T_CHAR:
case T_RANGE:
case T_NRANGE:
return 1;
case T_INDEPENDENT:
case T_PAREN:
case T_MODIFIERGROUP:
return getChild(0)->getMinLength();
case T_BACKREFERENCE:
return 0; // ***** - REVISIT
case T_STRING:
return XMLString::stringLen(getString());
case T_LOOKAHEAD:
case T_NEGATIVELOOKAHEAD:
case T_LOOKBEHIND:
case T_NEGATIVELOOKBEHIND:
return 0; // ***** - REVIST
// default:
// throw;
}
// We should not get here, but we have it to make some compilers happy
return -1;
}
int Token::getMaxLength() const {
switch (fTokenType) {
case T_CONCAT:
{
int sum = 0;
unsigned int childSize = size();
for (unsigned int i=0; i<childSize; i++) {
int val = getChild(i)->getMaxLength();
if (val < 0){
return -1;
}
sum += val;
}
return sum;
}
case T_CONDITION:
case T_UNION:
{
unsigned int childSize = size();
if (childSize == 0)
return 0;
int ret = getChild(0)->getMaxLength();
for (unsigned i = 1; ret > 0 && i < childSize; i++) {
int max = getChild(i)->getMaxLength();
if (max < 0) {
ret = -1;
break;
}
if (max > ret)
ret = max;
}
return ret;
}
case T_CLOSURE:
case T_NONGREEDYCLOSURE:
if (getMax() >= 0) {
return getMax() * getChild(0)->getMaxLength();
}
return -1;
case T_EMPTY:
case T_ANCHOR:
return 0;
case T_CHAR:
return 1;
case T_DOT:
case T_RANGE:
case T_NRANGE:
return 2;
case T_INDEPENDENT:
case T_PAREN:
case T_MODIFIERGROUP:
return getChild(0)->getMaxLength();
case T_BACKREFERENCE:
return -1; // REVISIT
case T_STRING:
return XMLString::stringLen(getString());
case T_LOOKAHEAD:
case T_NEGATIVELOOKAHEAD:
case T_LOOKBEHIND:
case T_NEGATIVELOOKBEHIND:
return 0; // REVISIT
// default:
// throw; //ThrowXML(RuntimeException, ...)
} // end switch
return -1;
}
// ---------------------------------------------------------------------------
// Token: Helper mthods
// ---------------------------------------------------------------------------
int Token::analyzeFirstCharacter(RangeToken* const rangeTok,
const int options,
TokenFactory* const tokFactory)
{
switch(fTokenType) {
case T_CONCAT:
{
int ret = FC_CONTINUE;
for (int i=0; i<size(); i++) {
Token* tok = getChild(i);
if (tok
&& (ret=tok->analyzeFirstCharacter(rangeTok,
options, tokFactory))!= FC_CONTINUE)
break;
}
return ret;
}
case T_UNION:
{
unsigned int childSize = size();
if (childSize == 0)
return FC_CONTINUE;
int ret = FC_CONTINUE;
bool hasEmpty = false;
for (unsigned int i=0; i < childSize; i++) {
ret = getChild(i)->analyzeFirstCharacter(rangeTok, options, tokFactory);
if (ret == FC_ANY)
break;
else
hasEmpty = true;
}
return hasEmpty ? FC_CONTINUE : ret;
}
case T_CONDITION:
{
int ret1 = getChild(0)->analyzeFirstCharacter(rangeTok, options, tokFactory);
if (size() == 1)
return FC_CONTINUE;
int ret2;
if (ret1 != FC_ANY) {
ret2 = getChild(1)->analyzeFirstCharacter(rangeTok, options, tokFactory);
}
if (ret1 == FC_ANY || ret2 == FC_ANY)
return FC_ANY;
if (ret1 == FC_CONTINUE || ret2 == FC_CONTINUE)
return FC_CONTINUE;
return FC_TERMINAL;
}
case T_CLOSURE:
case T_NONGREEDYCLOSURE:
{
Token* tok = getChild(0);
if (tok)
tok->analyzeFirstCharacter(rangeTok, options, tokFactory);
return FC_CONTINUE;
}
case T_DOT:
return FC_ANY;
case T_EMPTY:
case T_ANCHOR:
return FC_CONTINUE;
case T_CHAR:
{
XMLInt32 ch = getChar();
rangeTok->addRange(ch, ch);
if (ch < 0x1000 && isSet(options,RegularExpression::IGNORE_CASE)) {
//REVISIT
}
}
return FC_TERMINAL;
case T_RANGE:
{
if (isSet(options, RegularExpression::IGNORE_CASE)) {
rangeTok->mergeRanges(((RangeToken*)
this)->getCaseInsensitiveToken(tokFactory));
}
else {
rangeTok->mergeRanges(this);
}
return FC_TERMINAL;
}
case T_NRANGE:
{
if (isSet(options, RegularExpression::IGNORE_CASE)) {
RangeToken* caseITok = (((RangeToken*)
this)->getCaseInsensitiveToken(tokFactory));
rangeTok->mergeRanges(RangeToken::complementRanges(caseITok, tokFactory, fMemoryManager));
}
else {
rangeTok->mergeRanges(
RangeToken::complementRanges((RangeToken*) this, tokFactory, fMemoryManager));
}
}
case T_INDEPENDENT:
case T_PAREN:
{
Token* tok = getChild(0);
if (tok)
return tok->analyzeFirstCharacter(rangeTok,options, tokFactory);
}
case T_MODIFIERGROUP:
case T_BACKREFERENCE:
rangeTok->addRange(0, UTF16_MAX);
return FC_ANY;
case T_STRING:
{
const XMLCh* str = getString();
XMLInt32 ch = str[0];
if (RegxUtil::isHighSurrogate((XMLCh) ch)) {
}
rangeTok->addRange(ch, ch);
if (ch<0x10000 && isSet(options,RegularExpression::IGNORE_CASE)) {
//REVISIT
}
}
return FC_TERMINAL;
case T_LOOKAHEAD:
case T_NEGATIVELOOKAHEAD:
case T_LOOKBEHIND:
case T_NEGATIVELOOKBEHIND:
return FC_CONTINUE;
// default:
// throw;
}
return 0;
}
Token* Token::findFixedString(int options, int& outOptions) {
switch(fTokenType) {
case T_CHAR:
return 0;
case T_STRING:
outOptions = options;
return this;
case T_UNION:
case T_CLOSURE:
case T_NONGREEDYCLOSURE:
case T_EMPTY:
case T_ANCHOR:
case T_RANGE:
case T_NRANGE:
case T_DOT:
case T_BACKREFERENCE:
case T_LOOKAHEAD:
case T_NEGATIVELOOKAHEAD:
case T_LOOKBEHIND:
case T_NEGATIVELOOKBEHIND:
case T_CONDITION:
return 0;
case T_INDEPENDENT:
case T_PAREN:
return getChild(0)->findFixedString(options, outOptions);
case T_CONCAT:
{
Token* prevTok = 0;
int prevOptions = 0;
for (int i=0; i<size(); i++) {
Token* tok = getChild(i)->findFixedString(options, outOptions);
if (prevTok == 0 || prevTok->isShorterThan(tok)) {
prevTok = tok;
prevOptions = outOptions;
}
}
outOptions = prevOptions;
return prevTok;
}
case T_MODIFIERGROUP:
{
options |= ((ModifierToken *) this)->getOptions();
options &= ~((ModifierToken *) this)->getOptionsMask();
return getChild(0)->findFixedString(options, outOptions);
}
} // end switch
return 0;
}
bool Token::isShorterThan(Token* const tok) {
if (tok == 0)
return false;
if (getTokenType() != T_STRING && tok->getTokenType() != T_STRING)
return false; //Should we throw an exception?
int length = XMLString::stringLen(getString());
int tokLength = XMLString::stringLen(tok->getString());
return length < tokLength;
}
XERCES_CPP_NAMESPACE_END
/**
* End of file Token.cpp
*/
--- NEW FILE: TokenFactory.cpp ---
/*
* Copyright 2001,2004 The Apache Software Foundation.
*
* Licensed 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.
*/
/*
* $Id: TokenFactory.cpp,v 1.1 2008/02/19 20:16:31 zolmol Exp $
*/
// ---------------------------------------------------------------------------
// Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/regx/TokenFactory.hpp>
#include <xercesc/util/regx/TokenInc.hpp>
#include <xercesc/util/regx/XMLRangeFactory.hpp>
#include <xercesc/util/regx/ASCIIRangeFactory.hpp>
#include <xercesc/util/regx/UnicodeRangeFactory.hpp>
#include <xercesc/util/regx/BlockRangeFactory.hpp>
#include <xercesc/util/regx/RangeTokenMap.hpp>
#include <xercesc/util/regx/RegxDefs.hpp>
#include <xercesc/util/XMLRegisterCleanup.hpp>
XERCES_CPP_NAMESPACE_BEGIN
// ---------------------------------------------------------------------------
// TokenFactory: Constructors and Destructor
// ---------------------------------------------------------------------------
TokenFactory::TokenFactory(MemoryManager* const manager) :
fTokens(new (manager) RefVectorOf<Token> (16, true, manager))
, fEmpty(0)
, fLineBegin(0)
, fLineBegin2(0)
, fLineEnd(0)
, fStringBegin(0)
, fStringEnd(0)
, fStringEnd2(0)
, fWordEdge(0)
, fNotWordEdge(0)
, fWordEnd(0)
, fWordBegin(0)
, fDot(0)
, fCombiningChar(0)
, fGrapheme(0)
, fMemoryManager(manager)
{
}
TokenFactory::~TokenFactory() {
delete fTokens;
fTokens = 0;
}
// ---------------------------------------------------------------------------
// TokenFactory - Factory methods
// ---------------------------------------------------------------------------
Token* TokenFactory::createToken(const unsigned short tokType) {
if (tokType == Token::T_EMPTY && fEmpty != 0)
return fEmpty;
Token* tmpTok = new (fMemoryManager) Token(tokType, fMemoryManager);
if (tokType == Token::T_EMPTY) {
fEmpty = tmpTok;
}
fTokens->addElement(tmpTok);
return tmpTok;
}
ParenToken* TokenFactory::createLook(const unsigned short tokType,
Token* const token) {
ParenToken* tmpTok = new (fMemoryManager) ParenToken(tokType, token, 0, fMemoryManager);
fTokens->addElement(tmpTok);
return tmpTok;
}
ParenToken* TokenFactory::createParenthesis(Token* const token,
const int noGroups) {
ParenToken* tmpTok = new (fMemoryManager) ParenToken(Token::T_PAREN, token, noGroups, fMemoryManager);
fTokens->addElement(tmpTok);
return tmpTok;
}
ClosureToken* TokenFactory::createClosure(Token* const token,
bool isNonGreedy) {
ClosureToken* tmpTok = isNonGreedy ? new (fMemoryManager) ClosureToken(Token::T_NONGREEDYCLOSURE, token, fMemoryManager)
: new (fMemoryManager) ClosureToken(Token::T_CLOSURE, token, fMemoryManager);
fTokens->addElement(tmpTok);
return tmpTok;
}
ConcatToken* TokenFactory::createConcat(Token* const token1,
Token* const token2) {
ConcatToken* tmpTok = new (fMemoryManager) ConcatToken(token1, token2, fMemoryManager);
fTokens->addElement(tmpTok);
return tmpTok;
}
UnionToken* TokenFactory::createUnion(const bool isConcat) {
UnionToken* tmpTok = isConcat ? new (fMemoryManager) UnionToken(Token::T_CONCAT, fMemoryManager)
: new (fMemoryManager) UnionToken(Token::T_UNION, fMemoryManager);
fTokens->addElement(tmpTok);
return tmpTok;
}
RangeToken* TokenFactory::createRange(const bool isNegRange){
RangeToken* tmpTok = isNegRange ? new (fMemoryManager) RangeToken(Token::T_NRANGE, fMemoryManager)
: new (fMemoryManager) RangeToken(Token::T_RANGE, fMemoryManager);
fTokens->addElement(tmpTok);
return tmpTok;
}
CharToken* TokenFactory::createChar(const XMLUInt32 ch, const bool isAnchor) {
CharToken* tmpTok = isAnchor ? new (fMemoryManager) CharToken(Token::T_ANCHOR, ch, fMemoryManager)
: new (fMemoryManager) CharToken(Token::T_CHAR, ch, fMemoryManager);
fTokens->addElement(tmpTok);
return tmpTok;
}
StringToken* TokenFactory::createBackReference(const int noRefs) {
StringToken* tmpTok = new (fMemoryManager) StringToken(Token::T_BACKREFERENCE, 0, noRefs, fMemoryManager);
fTokens->addElement(tmpTok);
return tmpTok;
}
StringToken* TokenFactory::createString(const XMLCh* const literal) {
StringToken* tmpTok = new (fMemoryManager) StringToken(Token::T_STRING, literal, 0, fMemoryManager);
fTokens->addElement(tmpTok);
return tmpTok;
}
ModifierToken* TokenFactory::createModifierGroup(Token* const child,
const int add,
const int mask) {
ModifierToken* tmpTok = new (fMemoryManager) ModifierToken(child, add, mask, fMemoryManager);
fTokens->addElement(tmpTok);
return tmpTok;
}
ConditionToken* TokenFactory::createCondition(const int refNo,
Token* const condition,
Token* const yesFlow,
Token* const noFlow) {
ConditionToken* tmpTok = new (fMemoryManager) ConditionToken(refNo, condition, yesFlow,
noFlow, fMemoryManager);
fTokens->addElement(tmpTok);
return tmpTok;
}
// ---------------------------------------------------------------------------
// TokenFactory - Getter methods
// ---------------------------------------------------------------------------
RangeToken* TokenFactory::staticGetRange(const XMLCh* const keyword,
const bool complement) {
return RangeTokenMap::instance()->getRange(keyword, complement);
}
Token* TokenFactory::getLineBegin() {
if (fLineBegin == 0)
fLineBegin = createChar(chCaret, true);
return fLineBegin;
}
Token* TokenFactory::getLineBegin2() {
if (fLineBegin2 == 0)
fLineBegin2 = createChar(chAt, true);
return fLineBegin2;
}
Token* TokenFactory::getLineEnd() {
if (fLineEnd == 0)
fLineEnd = createChar(chDollarSign, true);
return fLineEnd;
}
Token* TokenFactory::getStringBegin() {
if (fStringBegin == 0)
fStringBegin = createChar(chLatin_A, true);
return fStringBegin;
}
Token* TokenFactory::getStringEnd() {
if (fStringEnd == 0)
fStringEnd = createChar(chLatin_z, true);
return fStringEnd;
}
Token* TokenFactory::getStringEnd2() {
if (fStringEnd2 == 0)
fStringEnd2 = createChar(chLatin_Z, true);
return fStringEnd2;
}
Token* TokenFactory::getWordEdge() {
if (fWordEdge == 0)
fWordEdge = createChar(chLatin_b, true);
return fWordEdge;
}
Token* TokenFactory::getNotWordEdge(){
if (fNotWordEdge == 0)
fNotWordEdge = createChar(chLatin_B, true);
return fNotWordEdge;
}
Token* TokenFactory::getWordBegin() {
if (fWordBegin == 0)
fWordBegin = createChar(chOpenAngle, true);
return fWordBegin;
}
Token* TokenFactory::getWordEnd() {
if (fWordEnd == 0)
fWordEnd = createChar(chCloseAngle, true);
return fWordEnd;
}
Token* TokenFactory::getDot() {
if (fDot == 0)
fDot = createToken(Token::T_DOT);
return fDot;
}
Token* TokenFactory::getCombiningCharacterSequence() {
if (fCombiningChar == 0) {
Token* foo = createClosure(getRange(fgUniMark)); // \pM*
foo = createConcat(getRange(fgUniMark, true), foo); // \PM + \pM*
fCombiningChar = foo;
}
return fCombiningChar;
}
// static final String viramaString =
Token* TokenFactory::getGraphemePattern() {
if (fGrapheme == 0) {
Token* base_char = createRange(); // [{ASSIGNED}]-[{M},{C}]
base_char->mergeRanges(getRange(fgUniAssigned));
base_char->subtractRanges(getRange(fgUniMark));
base_char->subtractRanges(getRange(fgUniControl));
Token* virama = createRange();
virama->addRange(0x094D, 0x094D);
virama->addRange(0x09CD, 0x09CD);
virama->addRange(0x0A4D, 0x0A4D);
virama->addRange(0x0ACD, 0x0ACD);
virama->addRange(0x0B4D, 0x0B4D);
virama->addRange(0x0BCD, 0x0BCD);
virama->addRange(0x0C4D, 0x0C4D);
virama->addRange(0x0CCD, 0x0CCD);
virama->addRange(0x0D4D, 0x0D4D);
virama->addRange(0x0E3A, 0x0E3A);
virama->addRange(0x0F84, 0x0F84);
Token* combiner_wo_virama = createRange();
combiner_wo_virama->mergeRanges(getRange(fgUniMark));
combiner_wo_virama->addRange(0x1160, 0x11FF); // hangul_medial and hangul_final
combiner_wo_virama->addRange(0xFF9F, 0xFF9F); // extras
Token* left = TokenFactory::createUnion(); // base_char?
left->addChild(base_char, this);
left->addChild(createToken(Token::T_EMPTY), this);
Token* foo = createUnion();
foo->addChild(TokenFactory::createConcat(virama,getRange(fgUniLetter)), this);
foo->addChild(combiner_wo_virama, this);
foo = createClosure(foo);
foo = createConcat(left, foo);
fGrapheme = foo;
}
return fGrapheme;
}
/*
#if defined (XML_USE_ICU_TRANSCODER)
#include <unicode/uchar.h>
#endif
#include <stdio.h>
void TokenFactory::printUnicode() {
#if defined (XML_USE_ICU_TRANSCODER)
//
// Write it out to a temp file to be read back into this source later.
//
printf("Printing\n");
//sprintf(msg, "Printing\n");
FILE* outFl = fopen("table.out", "wt+");
fprintf(outFl, "const XMLByte fgUniCharsTable[0x10000] =\n{ ");
for (unsigned int index = 0; index <= 0xFFFF; index += 16)
{
fprintf(outFl
, " , 0x%02X, 0x%02X, 0x%02X, 0x%02X, 0x%02X, 0x%02X, 0x%02X, 0x%02X, 0x%02X, 0x%02X, 0x%02X, 0x%02X, 0x%02X, 0x%02X, 0x%02X, 0x%02X\n"
, (unsigned int)u_charType(index)
, (unsigned int)u_charType(index+1)
, (unsigned int)u_charType(index+2)
, (unsigned int)u_charType(index+3)
, (unsigned int)u_charType(index+4)
, (unsigned int)u_charType(index+5)
, (unsigned int)u_charType(index+6)
, (unsigned int)u_charType(index+7)
, (unsigned int)u_charType(index+8)
, (unsigned int)u_charType(index+9)
, (unsigned int)u_charType(index+10)
, (unsigned int)u_charType(index+11)
, (unsigned int)u_charType(index+12)
, (unsigned int)u_charType(index+13)
, (unsigned int)u_charType(index+14)
, (unsigned int)u_charType(index+15));
}
fprintf(outFl, "};\n");
fclose(outFl);
#endif
}
*/
XERCES_CPP_NAMESPACE_END
/**
* End of file TokenFactory.cpp
*/
- Previous message: [GME-commit] GMESRC/GME/Include/xercesc/validators/datatype XMLCanRepGroup.hpp, NONE, 1.1 AbstractNumericFacetValidator.hpp, 1.1.1.1, 1.2 AbstractNumericValidator.hpp, 1.1.1.1, 1.2 AbstractStringValidator.hpp, 1.1.1.1, 1.2 AnySimpleTypeDatatypeValidator.hpp, 1.1.1.1, 1.2 AnyURIDatatypeValidator.hpp, 1.1.1.1, 1.2 Base64BinaryDatatypeValidator.hpp, 1.1.1.1, 1.2 BooleanDatatypeValidator.hpp, 1.1.1.1, 1.2 DatatypeValidator.hpp, 1.1.1.1, 1.2 DatatypeValidatorFactory.hpp, 1.1.1.1, 1.2 DateDatatypeValidator.hpp, 1.1.1.1, 1.2 DateTimeDatatypeValidator.hpp, 1.1.1.1, 1.2 DateTimeValidator.hpp, 1.1.1.1, 1.2 DayDatatypeValidator.hpp, 1.1.1.1, 1.2 DecimalDatatypeValidator.hpp, 1.1.1.1, 1.2 DoubleDatatypeValidator.hpp, 1.1.1.1, 1.2 DurationDatatypeValidator.hpp, 1.1.1.1, 1.2 ENTITYDatatypeValidator.hpp, 1.1.1.1, 1.2 FloatDatatypeValidator.hpp, 1.1.1.1, 1.2 HexBinaryDatatypeValidator.hpp, 1.1.1.1, 1.2 IDDatatypeValidator.hpp, 1.1.1.1, 1.2 IDREFDatatypeValidator.hpp, 1.1.1.1, 1.2 InvalidDatatypeFacetException.hpp, 1.1.1.1, 1.2 InvalidDataty peValueException.hpp, 1.1.1.1, 1.2 ListDatatypeValidator.hpp, 1.1.1.1, 1.2 MonthDatatypeValidator.hpp, 1.1.1.1, 1.2 MonthDayDatatypeValidator.hpp, 1.1.1.1, 1.2 NCNameDatatypeValidator.hpp, 1.1.1.1, 1.2 NOTATIONDatatypeValidator.hpp, 1.1.1.1, 1.2 NameDatatypeValidator.hpp, 1.1.1.1, 1.2 QNameDatatypeValidator.hpp, 1.1.1.1, 1.2 StringDatatypeValidator.hpp, 1.1.1.1, 1.2 TimeDatatypeValidator.hpp, 1.1.1.1, 1.2 UnionDatatypeValidator.hpp, 1.1.1.1, 1.2 YearDatatypeValidator.hpp, 1.1.1.1, 1.2 YearMonthDatatypeValidator.hpp, 1.1.1.1, 1.2
- Next message: [GME-commit] GMESRC/GME/Include/xercesc/dom/impl DOMAttrImpl.cpp, NONE, 1.1 DOMAttrImpl.hpp, NONE, 1.1 DOMAttrMapImpl.cpp, NONE, 1.1 DOMAttrMapImpl.hpp, NONE, 1.1 DOMAttrNSImpl.cpp, NONE, 1.1 DOMAttrNSImpl.hpp, NONE, 1.1 DOMCDATASectionImpl.cpp, NONE, 1.1 DOMCDATASectionImpl.hpp, NONE, 1.1 DOMCasts.hpp, NONE, 1.1 DOMCharacterDataImpl.cpp, NONE, 1.1 DOMCharacterDataImpl.hpp, NONE, 1.1 DOMChildNode.cpp, NONE, 1.1 DOMChildNode.hpp, NONE, 1.1 DOMCommentImpl.cpp, NONE, 1.1 DOMCommentImpl.hpp, NONE, 1.1 DOMConfigurationImpl.cpp, NONE, 1.1 DOMConfigurationImpl.hpp, NONE, 1.1 DOMDeepNodeListImpl.cpp, NONE, 1.1 DOMDeepNodeListImpl.hpp, NONE, 1.1 DOMDeepNodeListPool.c, NONE, 1.1 DOMDeepNodeListPool.hpp, NONE, 1.1 DOMDocumentFragmentImpl.cpp, NONE, 1.1 DOMDocumentFragmentImpl.hpp, NONE, 1.1 DOMDocumentImpl.cpp, NONE, 1.1 DOMDocumentImpl.hpp, NONE, 1.1 DOMDocumentTypeImpl.cpp, NONE, 1.1 DOMDocumentTypeImpl.hpp, NONE, 1.1 DOMElementImpl.cpp, NONE, 1.1 DOMElementImpl.hpp, NONE, 1.1 DOMElementNSImpl.cpp, NONE, 1.1 DOMElementNSImpl.hpp, NONE, 1.1 DOMEntity Impl.cpp, NONE, 1.1 DOMEntityImpl.hpp, NONE, 1.1 DOMEntityReferenceImpl.cpp, NONE, 1.1 DOMEntityReferenceImpl.hpp, NONE, 1.1 DOMErrorImpl.cpp, NONE, 1.1 DOMErrorImpl.hpp, NONE, 1.1 DOMImplementationImpl.cpp, NONE, 1.1 DOMImplementationImpl.hpp, NONE, 1.1 DOMImplementationRegistry.cpp, NONE, 1.1 DOMLocatorImpl.cpp, NONE, 1.1 DOMLocatorImpl.hpp, NONE, 1.1 DOMNamedNodeMapImpl.cpp, NONE, 1.1 DOMNamedNodeMapImpl.hpp, NONE, 1.1 DOMNodeIDMap.cpp, NONE, 1.1 DOMNodeIDMap.hpp, NONE, 1.1 DOMNodeImpl.cpp, NONE, 1.1 DOMNodeImpl.hpp, NONE, 1.1 DOMNodeIteratorImpl.cpp, NONE, 1.1 DOMNodeIteratorImpl.hpp, NONE, 1.1 DOMNodeListImpl.cpp, NONE, 1.1 DOMNodeListImpl.hpp, NONE, 1.1 DOMNodeVector.cpp, NONE, 1.1 DOMNodeVector.hpp, NONE, 1.1 DOMNormalizer.cpp, NONE, 1.1 DOMNormalizer.hpp, NONE, 1.1 DOMNotationImpl.cpp, NONE, 1.1 DOMNotationImpl.hpp, NONE, 1.1 DOMParentNode.cpp, NONE, 1.1 DOMParentNode.hpp, NONE, 1.1 DOMProcessingInstructionImpl.cpp, NONE, 1.1 DOMProcessingInstructionImpl.hpp, NONE, 1.1 DOMRangeImpl.cpp, NONE, 1.1 DOMRangeImpl.hpp, NONE, 1.1 DOMStri ngPool.cpp, NONE, 1.1 DOMStringPool.hpp, NONE, 1.1 DOMTextImpl.cpp, NONE, 1.1 DOMTextImpl.hpp, NONE, 1.1 DOMTreeWalkerImpl.cpp, NONE, 1.1 DOMTreeWalkerImpl.hpp, NONE, 1.1 DOMTypeInfoImpl.cpp, NONE, 1.1 DOMTypeInfoImpl.hpp, NONE, 1.1 DOMWriterImpl.cpp, NONE, 1.1 DOMWriterImpl.hpp, NONE, 1.1 Makefile.in, NONE, 1.1 XSDElementNSImpl.cpp, NONE, 1.1 XSDElementNSImpl.hpp, NONE, 1.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the GME-commit
mailing list