FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
android_external_webkit/JavaScriptCore/wrec/WREC.cpp at froyo · madmack/android_external_webkit · GitHub
madmack
/
android_external_webkit
Public
forked from
Y6b/android_external_webkit
Notifications
You must be signed in to change notification settings
Fork
0
Star
2
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
android_external_webkit
/
JavaScriptCore
/
wrec
/
WREC.cpp
Copy path
More file actions
More file actions
Latest commit
History
History
History
86 lines (70 loc) · 3.03 KB
Breadcrumbs
android_external_webkit
/
JavaScriptCore
/
wrec
/
WREC.cpp
Copy path
File metadata and controls
86 lines (70 loc) · 3.03 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/*
* Copyright (C) 2008 Apple 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:
* 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.
*
* THIS SOFTWARE IS PROVIDED BY APPLE INC. ``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 APPLE INC. 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.
*/
#
include
"
config.h
"
#
include
"
WREC.h
"
#
if
ENABLE(WREC)
#
include
"
CharacterClassConstructor.h
"
#
include
"
Interpreter.h
"
#
include
"
JSGlobalObject.h
"
#
include
"
RegisterFile.h
"
#
include
"
WRECFunctors.h
"
#
include
"
WRECParser.h
"
#
include
"
pcre_internal.h
"
using
namespace
WTF
;
namespace
JSC
{
namespace
WREC
{
CompiledRegExp
Generator::compileRegExp
(JSGlobalData* globalData,
const
UString& pattern,
unsigned
* numSubpatterns_ptr,
const
char
** error_ptr, RefPtr<ExecutablePool>& pool,
bool
ignoreCase,
bool
multiline)
{
if
(pattern.
size
() >
MAX_PATTERN_SIZE
) {
*error_ptr =
"
regular expression too large
"
;
return
0
;
}
Parser
parser
(pattern, ignoreCase, multiline);
Generator& generator = parser.
generator
();
MacroAssembler::JumpList failures;
MacroAssembler::Jump endOfInput;
generator.
generateEnter
();
generator.
generateSaveIndex
();
Label
beginPattern
(&generator);
parser.
parsePattern
(failures);
generator.
generateReturnSuccess
();
failures.
link
(&generator);
generator.
generateIncrementIndex
(&endOfInput);
parser.
parsePattern
(failures);
generator.
generateReturnSuccess
();
failures.
link
(&generator);
generator.
generateIncrementIndex
();
generator.
generateJumpIfNotEndOfInput
(beginPattern);
endOfInput.
link
(&generator);
generator.
generateReturnFailure
();
if
(parser.
error
()) {
*error_ptr = parser.
syntaxError
();
//
NULL in the case of patterns that WREC doesn't support yet.
return
0
;
}
*numSubpatterns_ptr = parser.
numSubpatterns
();
pool = globalData->
executableAllocator
.
poolForSize
(generator.
size
());
return
reinterpret_cast
<CompiledRegExp>(generator.
copyCode
(pool.
get
()));
}
} }
//
namespace JSC::WREC
#
endif
//
ENABLE(WREC)
Back
|
FazBrowse Home
|
New Git URL