diff -r 000000000000 -r 7f656887cf89 libraries/spcre/inc/tregexoptions.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libraries/spcre/inc/tregexoptions.h Wed Jun 23 15:52:26 2010 +0100 @@ -0,0 +1,113 @@ +// tregexoptions.h +// +// Copyright (c) 2005 - 2006, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * 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. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS 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 COPYRIGHT +// OWNER OR 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. +// +// Author: Sanjay Ghemawat +// +// Heavily refactored for Symbian OS by Accenture. + +#ifndef TREGEXOPTIONS_H_ +#define TREGEXOPTIONS_H_ + +#include + +enum TRegExOptionFlags + { + EPcreCaseless = 0x00000001, + EPcreMultiline = 0x00000002, + EPcreDotAll = 0x00000004, + EPcreExtended = 0x00000008, + EPcreAnchored = 0x00000010, + EPcreDollarEndOnly = 0x00000020, + EPcreExtra = 0x00000040, + EPcreNotBol = 0x00000080, + EPcreNotEol = 0x00000100, + EPcreUngreedy = 0x00000200, + EPcreNotEmpty = 0x00000400, + EPcreUtf8 = 0x00000800, + EPcreNoAutoCapture = 0x00001000, + EPcreNoUtf8Check = 0x00002000, + EPcreAutoCallout = 0x00004000, + EPcrePartial = 0x00008000, + EPcreDfaShortest = 0x00010000, + EPcreDfaRestart = 0x00020000, + EPcreFirstline = 0x00040000, + EPcreDupnames = 0x00080000, + EPcreNewlineCr = 0x00100000, + EPcreNewlineLf = 0x00200000, + EPcreNewlineCrLf = 0x00300000, + EPcreNewlineAny = 0x00400000, + EPcreNewlineAnyCrLf = 0x00500000, + EPcreBsrAnyCrLf = 0x00800000, + EPcreBsrUnicode = 0x01000000, + EPcreJavascriptCompat = 0x02000000 + }; + +class TRegExOptions + { +public: + IMPORT_C TRegExOptions(); + IMPORT_C TRegExOptions(TUint aOptionFlags); + + // Getters / Setters + inline TInt MatchLimit() const; + inline TRegExOptions SetMatchLimit(TInt aLimit); + inline TInt MatchLimitRecursion() const; + inline TRegExOptions SetMatchLimitRecursion(TInt aLimit); + inline TInt AllOptions() const; + inline TRegExOptions SetAllOptions(TInt aOptions); + + inline TBool Caseless() const; + inline TRegExOptions SetCaseless(TBool aCaseLess); + inline TBool Multiline() const; + inline TRegExOptions SetMultiline(TBool aMultiline); + inline TBool DotAll() const; + inline TRegExOptions SetDotAll(TBool aDotAll); + inline TBool Extended() const; + inline TRegExOptions SetExtended(TBool aExtended); + inline TBool DollarEndOnly() const; + inline TRegExOptions SetDollarEndOnly(TBool aDollarEndOnly); + inline TBool Extra() const; + inline TRegExOptions SetExtra(TBool aSetExtra); + inline TBool Ungreedy() const; + inline TRegExOptions SetUngreedy(TBool aUngreedy); + inline TBool Utf8() const; + inline TRegExOptions SetUtf8(TBool aUtf8); + inline TBool NoAutoCapture() const; + inline TRegExOptions SetNoAutoCapture(TBool aAutoCapture); + +private: + TInt iMatchLimit; + TInt iMatchLimitRecursion; + TUint iAllOptions; + }; + +#include "tregexoptions.inl" +#endif /* TREGEXOPTIONS_H_ */