Home | History | Annotate | Download | only in regexp

Lines Matching full:regexp

5 #include "src/regexp/jsregexp.h"
16 #include "src/regexp/interpreter-irregexp.h"
17 #include "src/regexp/jsregexp-inl.h"
18 #include "src/regexp/regexp-macro-assembler.h"
19 #include "src/regexp/regexp-macro-assembler-irregexp.h"
20 #include "src/regexp/regexp-macro-assembler-tracer.h"
21 #include "src/regexp/regexp-parser.h"
22 #include "src/regexp/regexp-stack.h"
30 #include "src/regexp/ia32/regexp-macro-assembler-ia32.h"
32 #include "src/regexp/x64/regexp-macro-assembler-x64.h"
34 #include "src/regexp/arm64/regexp-macro-assembler-arm64.h"
36 #include "src/regexp/arm/regexp-macro-assembler-arm.h"
38 #include "src/regexp/ppc/regexp-macro-assembler-ppc.h"
40 #include "src/regexp/mips/regexp-macro-assembler-mips.h"
42 #include "src/regexp/mips64/regexp-macro-assembler-mips64.h"
44 #include "src/regexp/x87/regexp-macro-assembler-x87.h"
101 // Identifies the sort of regexps where the regexp engine is faster
115 // We declare a regexp low-alphabet if it has at least 3 times as many
124 // Generic RegExp methods. Dispatches to implementation specific methods.
180 // Compilation succeeded so the data is set on the regexp
189 MaybeHandle<Object> RegExpImpl::Exec(Handle<JSRegExp> regexp,
193 switch (regexp->TypeTag()) {
195 return AtomExec(regexp, subject, index, last_match_info);
197 return IrregexpExec(regexp, subject, index, last_match_info);
206 // RegExp Atom implementation: Simple string search using indexOf.
234 int RegExpImpl::AtomExecRaw(Handle<JSRegExp> regexp,
239 Isolate* isolate = regexp->GetIsolate();
247 String* needle = String::cast(regexp->DataAt(JSRegExp::kAtomPatternIndex));
310 // Ensures that the regexp object contains a compiled version of the
322 #else // V8_INTERPRETED_REGEXP (RegExp native code)
341 // Compile the RegExp.
349 // uncompiled regexp, a previous compilation error, or code that has
387 // Unable to compile regexp.
449 int RegExpImpl::IrregexpPrepare(Handle<JSRegExp> regexp,
455 if (!EnsureCompiledIrregexp(regexp, subject, is_one_byte)) return -1;
458 // Byte-code regexp needs space allocated for all its registers.
462 return IrregexpNumberOfRegisters(FixedArray::cast(regexp->data())) +
463 (IrregexpNumberOfCaptures(FixedArray::cast(regexp->data())) + 1) * 2;
465 // Native regexp only needs room to output captures. Registers are handled
467 return (IrregexpNumberOfCaptures(FixedArray::cast(regexp->data())) + 1) * 2;
472 int RegExpImpl::IrregexpExecRaw(Handle<JSRegExp> regexp,
477 Isolate* isolate = regexp->GetIsolate();
479 Handle<FixedArray> irregexp(FixedArray::cast(regexp->data()), isolate);
490 EnsureCompiledIrregexp(regexp, subject, is_one_byte);
492 // The stack is used to allocate registers for the compiled regexp code.
520 IrregexpPrepare(regexp, subject);
560 MaybeHandle<Object> RegExpImpl::IrregexpExec(Handle<JSRegExp> regexp,
564 Isolate* isolate = regexp->GetIsolate();
565 DCHECK_EQ(regexp->TypeTag(), JSRegExp::IRREGEXP);
570 String* pattern = regexp->Pattern();
575 int required_registers = RegExpImpl::IrregexpPrepare(regexp, subject);
592 regexp, subject, previous_index, output_registers, required_registers);
595 IrregexpNumberOfCaptures(FixedArray::cast(regexp->data()));
637 RegExpImpl::GlobalCache::GlobalCache(Handle<JSRegExp> regexp,
643 regexp_(regexp),
669 // Global loop in interpreted regexp is not implemented. We choose
682 // to the compiled regexp.
701 // The Irregexp regexp engine is structured in three steps.
913 // regexp macro assembler).
1037 return RegExpEngine::CompilationResult(isolate, "RegExp too big");
1041 // Attempts to compile the regexp using an Irregexp code generator. Returns
2002 // If there are a lot of intervals in the regexp, then we will use tables to
3183 // later passes. for example for the case independent regexp /%[asdfghjkl]a/
3814 * regexp continuation is generated directly after the Sn node, up to the
4060 // any character one at a time. Any non-anchored regexp has such a
4892 // This step is more tricky if we are in a case-independent regexp,
4894 // the regexp parts don't match only disjoint starting points. To fix
5094 // regexp graph generator.
6284 // Wrap the body of the regexp in capture #0.
6332 // Native regexp implementation.
6367 // Interpreted regexp implementation.