Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Firefox/js/src/irregexp/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 3 kB image not shown  

Quelle  RegExpAPI.h   Sprache: C

 
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
 * vim: set ts=8 sts=2 et sw=2 tw=80:
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */


/* This is the interface that the regexp engine exposes to SpiderMonkey. */

#ifndef regexp_RegExpAPI_h
#define regexp_RegExpAPI_h

#include "mozilla/Maybe.h"
#include "mozilla/MemoryReporting.h"
#include "mozilla/Range.h"

#include <stddef.h>
#include <stdint.h>

#include "jstypes.h"

#include "irregexp/RegExpTypes.h"
#include "js/ColumnNumber.h"  // JS::ColumnNumberOneOigin
#include "js/Stack.h"         // JS::NativeStackLimit
#include "vm/RegExpShared.h"

struct JS_PUBLIC_API JSContext;
class JS_PUBLIC_API JSTracer;

namespace JS {
class RegExpFlags;
}

namespace v8::internal {
class RegExpStack;
}

namespace js {

class VectorMatchPairs;
class LifoAlloc;

namespace frontend {
class TokenStreamAnyChars;
}

namespace irregexp {

Isolate* CreateIsolate(JSContext* cx);
void TraceIsolate(JSTracer* trc, Isolate* isolate);
void DestroyIsolate(Isolate* isolate);

size_t IsolateSizeOfIncludingThis(Isolate* isolate,
                                  mozilla::MallocSizeOf mallocSizeOf);

bool CheckPatternSyntax(
    js::LifoAlloc& alloc, JS::NativeStackLimit stackLimit,
    frontend::TokenStreamAnyChars& ts,
    const mozilla::Range<const char16_t> chars, JS::RegExpFlags flags,
    mozilla::Maybe<uint32_t> line = mozilla::Nothing(),
    mozilla::Maybe<JS::ColumnNumberOneOrigin> column = mozilla::Nothing());
bool CheckPatternSyntax(JSContext* cx, JS::NativeStackLimit stackLimit,
                        frontend::TokenStreamAnyChars& ts,
                        Handle<JSAtom*> pattern, JS::RegExpFlags flags);

bool CompilePattern(JSContext* cx, MutableHandleRegExpShared re,
                    Handle<JSLinearString*> input,
                    RegExpShared::CodeKind codeKind);

RegExpRunStatus Execute(JSContext* cx, MutableHandleRegExpShared re,
                        Handle<JSLinearString*> input, size_t start,
                        VectorMatchPairs* matches);

RegExpRunStatus ExecuteForFuzzing(JSContext* cx, Handle<JSAtom*> pattern,
                                  Handle<JSLinearString*> input,
                                  JS::RegExpFlags flags, size_t startIndex,
                                  VectorMatchPairs* matches,
                                  RegExpShared::CodeKind codeKind);

bool GrowBacktrackStack(v8::internal::RegExpStack* regexp_stack);

uint32_t CaseInsensitiveCompareNonUnicode(const char16_t* substring1,
                                          const char16_t* substring2,
                                          size_t byteLength);
uint32_t CaseInsensitiveCompareUnicode(const char16_t* substring1,
                                       const char16_t* substring2,
                                       size_t byteLength);
bool IsCharacterInRangeArray(uint32_t c, ByteArrayData* ranges);

#ifdef DEBUG
bool IsolateShouldSimulateInterrupt(Isolate* isolate);
void IsolateSetShouldSimulateInterrupt(Isolate* isolate);
void IsolateClearShouldSimulateInterrupt(Isolate* isolate);
#endif
}  // namespace irregexp
}  // namespace js

#endif /* regexp_RegExpAPI_h */

Messung V0.5
C=93 H=83 G=87

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.