Home | History | Annotate | Download | only in regexp

Lines Matching refs:regexp

5 #include "src/regexp/jsregexp.h"
17 #include "src/regexp/interpreter-irregexp.h"
18 #include "src/regexp/jsregexp-inl.h"
19 #include "src/regexp/regexp-macro-assembler-irregexp.h"
20 #include "src/regexp/regexp-macro-assembler-tracer.h"
21 #include "src/regexp/regexp-macro-assembler.h"
22 #include "src/regexp/regexp-parser.h"
23 #include "src/regexp/regexp-stack.h"
36 #include "src/regexp/ia32/regexp-macro-assembler-ia32.h"
38 #include "src/regexp/x64/regexp-macro-assembler-x64.h"
40 #include "src/regexp/arm64/regexp-macro-assembler-arm64.h"
42 #include "src/regexp/arm/regexp-macro-assembler-arm.h"
44 #include "src/regexp/ppc/regexp-macro-assembler-ppc.h"
46 #include "src/regexp/s390/regexp-macro-assembler-s390.h"
48 #include "src/regexp/mips/regexp-macro-assembler-mips.h"
50 #include "src/regexp/mips64/regexp-macro-assembler-mips64.h"
52 #include "src/regexp/x87/regexp-macro-assembler-x87.h"
109 // Identifies the sort of regexps where the regexp engine is faster
123 // We declare a regexp low-alphabet if it has at least 3 times as many
132 // Generic RegExp methods. Dispatches to implementation specific methods.
183 // Compilation succeeded so the data is set on the regexp
191 MaybeHandle<Object> RegExpImpl::Exec(Handle<JSRegExp> regexp,
194 switch (regexp->TypeTag()) {
196 return AtomExec(regexp, subject, index, last_match_info);
198 return IrregexpExec(regexp, subject, index, last_match_info);
207 // RegExp Atom implementation: Simple string search using indexOf.
232 int RegExpImpl::AtomExecRaw(Handle<JSRegExp> regexp,
237 Isolate* isolate = regexp->GetIsolate();
245 String* needle = String::cast(regexp->DataAt(JSRegExp::kAtomPatternIndex));
306 // Ensures that the regexp object contains a compiled version of the
318 #else // V8_INTERPRETED_REGEXP (RegExp native code)
337 // Compile the RegExp.
345 // uncompiled regexp, a previous compilation error, or code that has
381 // Unable to compile regexp.
452 int RegExpImpl::IrregexpPrepare(Handle<JSRegExp> regexp,
458 if (!EnsureCompiledIrregexp(regexp, subject, is_one_byte)) return -1;
461 // Byte-code regexp needs space allocated for all its registers.
465 return IrregexpNumberOfRegisters(FixedArray::cast(regexp->data())) +
466 (IrregexpNumberOfCaptures(FixedArray::cast(regexp->data())) + 1) * 2;
468 // Native regexp only needs room to output captures. Registers are handled
470 return (IrregexpNumberOfCaptures(FixedArray::cast(regexp->data())) + 1) * 2;
475 int RegExpImpl::IrregexpExecRaw(Handle<JSRegExp> regexp,
480 Isolate* isolate = regexp->GetIsolate();
482 Handle<FixedArray> irregexp(FixedArray::cast(regexp->data()), isolate);
493 EnsureCompiledIrregexp(regexp, subject, is_one_byte);
495 // The stack is used to allocate registers for the compiled regexp code.
523 IrregexpPrepare(regexp, subject);
563 Handle<JSRegExp> regexp, Handle<String> subject, int previous_index,
565 Isolate* isolate = regexp->GetIsolate();
566 DCHECK_EQ(regexp->TypeTag(), JSRegExp::IRREGEXP);
571 String* pattern = regexp->Pattern();
576 int required_registers = RegExpImpl::IrregexpPrepare(regexp, subject);
593 regexp, subject, previous_index, output_registers, required_registers);
596 IrregexpNumberOfCaptures(FixedArray::cast(regexp->data()));
612 // regexp, RegExpExecStub finds that the match info is too small, it restarts
645 RegExpImpl::GlobalCache::GlobalCache(Handle<JSRegExp> regexp,
650 regexp_(regexp),
671 DCHECK_NE(0, regexp->GetFlags() & JSRegExp::kGlobal);
677 // Global loop in interpreted regexp is not implemented. We choose
690 // to the compiled regexp.
719 // The Irregexp regexp engine is structured in three steps.
931 // regexp macro assembler).
1074 return RegExpEngine::CompilationResult(isolate, "RegExp too big");
1078 // Attempts to compile the regexp using an Irregexp code generator. Returns
2039 // If there are a lot of intervals in the regexp, then we will use tables to
3209 // later passes. for example for the case independent regexp /%[asdfghjkl]a/
3867 * regexp continuation is generated directly after the Sn node, up to the
4118 // any character one at a time. Any non-anchored regexp has such a
5250 // This step is more tricky if we are in a case-independent regexp,
5252 // the regexp parts don't match only disjoint starting points. To fix
5452 // regexp graph generator.
6591 // If the regexp matching starts within a surrogate pair, step back
6647 // Wrap the body of the regexp in capture #0.
6697 // Native regexp implementation.
6735 // Interpreted regexp implementation.