]>
git.saurik.com Git - apple/javascriptcore.git/blob - kjs/regexp.h
1 // -*- c-basic-offset: 2 -*-
3 * Copyright (C) 1999-2000 Harri Porten (porten@kde.org)
4 * Copyright (C) 2007 Apple Inc. All rights reserved.
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
26 #include <pcre/pcre.h>
27 #include <sys/types.h>
28 #include <wtf/OwnArrayPtr.h>
29 #include <wtf/RefCounted.h>
33 class RegExp
: public RefCounted
<RegExp
> {
42 RegExp(const UString
& pattern
);
43 RegExp(const UString
& pattern
, const UString
& flags
);
46 bool global() const { return m_flagBits
& Global
; }
47 bool ignoreCase() const { return m_flagBits
& IgnoreCase
; }
48 bool multiline() const { return m_flagBits
& Multiline
; }
50 const UString
& pattern() const { return m_pattern
; }
51 const UString
& flags() const { return m_flags
; }
53 bool isValid() const { return !m_constructionError
; }
54 const char* errorMessage() const { return m_constructionError
; }
56 int match(const UString
&, int offset
, OwnArrayPtr
<int>* ovector
= 0);
57 unsigned numSubpatterns() const { return m_numSubpatterns
; }
62 // Data supplied by caller.
63 UString m_pattern
; // FIXME: Just decompile m_regExp instead of storing this.
64 UString m_flags
; // FIXME: Just decompile m_regExp instead of storing this.
67 // Data supplied by PCRE.
69 const char* m_constructionError
;
70 unsigned m_numSubpatterns
;