diff options
Diffstat (limited to 'JavaScriptCore/yarr/RegexPattern.h')
-rw-r--r-- | JavaScriptCore/yarr/RegexPattern.h | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/JavaScriptCore/yarr/RegexPattern.h b/JavaScriptCore/yarr/RegexPattern.h index dd7512d..3271cc1 100644 --- a/JavaScriptCore/yarr/RegexPattern.h +++ b/JavaScriptCore/yarr/RegexPattern.h @@ -26,7 +26,6 @@ #ifndef RegexPattern_h #define RegexPattern_h -#include <wtf/Platform.h> #if ENABLE(YARR) @@ -57,11 +56,35 @@ struct CharacterRange { } }; +struct CharacterClassTable : RefCounted<CharacterClassTable> { + const char* m_table; + bool m_inverted; + static PassRefPtr<CharacterClassTable> create(const char* table, bool inverted) + { + return adoptRef(new CharacterClassTable(table, inverted)); + } + +private: + CharacterClassTable(const char* table, bool inverted) + : m_table(table) + , m_inverted(inverted) + { + } +}; + struct CharacterClass : FastAllocBase { + // All CharacterClass instances have to have the full set of matches and ranges, + // they may have an optional table for faster lookups (which must match the + // specified matches and ranges) + CharacterClass(PassRefPtr<CharacterClassTable> table) + : m_table(table) + { + } Vector<UChar> m_matches; Vector<CharacterRange> m_ranges; Vector<UChar> m_matchesUnicode; Vector<CharacterRange> m_rangesUnicode; + RefPtr<CharacterClassTable> m_table; }; enum QuantifierType { @@ -248,6 +271,7 @@ struct RegexPattern { , m_multiline(multiline) , m_numSubpatterns(0) , m_maxBackReference(0) + , m_shouldFallBack(false) , newlineCached(0) , digitsCached(0) , spacesCached(0) @@ -269,6 +293,8 @@ struct RegexPattern { m_numSubpatterns = 0; m_maxBackReference = 0; + m_shouldFallBack = false; + newlineCached = 0; digitsCached = 0; spacesCached = 0; @@ -335,6 +361,7 @@ struct RegexPattern { bool m_multiline; unsigned m_numSubpatterns; unsigned m_maxBackReference; + bool m_shouldFallBack; PatternDisjunction* m_body; Vector<PatternDisjunction*, 4> m_disjunctions; Vector<CharacterClass*> m_userCharacterClasses; |