4#ifndef QV4REGEXPOBJECT_H
5#define QV4REGEXPOBJECT_H
18#include <private/qv4context_p.h>
19#include <private/qv4engine_p.h>
20#include <private/qv4functionobject_p.h>
21#include <private/qv4managed_p.h>
23#include <QtCore/qhash.h>
24#include <QtCore/qstring.h>
32#define RegExpObjectMembers(class, Member)
33 Member(class, Pointer, RegExp *, value)
36 DECLARE_MARKOBJECTS(RegExpObject)
39 void init(QV4::RegExp *value);
40#if QT_CONFIG(regularexpression)
41 void init(
const QRegularExpression &re);
45#define RegExpCtorMembers(class, Member)
46 Member(class, HeapValue, HeapValue, lastMatch)
47 Member(class, Pointer, String *, lastInput)
48 Member(class, NoMark, int, lastMatchStart)
49 Member(class, NoMark, int, lastMatchEnd)
52 DECLARE_MARKOBJECTS(RegExpCtor)
54 void init(ExecutionEngine *engine);
55 void clearLastMatch();
87 Q_ASSERT(internalClass()->verifyIndex(engine()->id_lastIndex()->propertyKey(),
Index_LastIndex));
91 Q_ASSERT(internalClass()->verifyIndex(engine()->id_lastIndex()->propertyKey(),
Index_LastIndex));
93 engine()->throwTypeError();
96 return setProperty(Index_LastIndex, Value::fromInt32(index));
99#if QT_CONFIG(regularexpression)
105 Scope scope(engine());
106 ScopedValue s(scope, get(scope.engine->id_source()));
107 return s->toQString();
114 RegExp *
value()
const {
return d()->value; }
118 bool global()
const {
return value<RegExp>()->global(); }
120 bool sticky()
const {
return value<RegExp>()->sticky(); }
122 bool unicode()
const {
return value<RegExp>()->unicode(); }
142 void init(ExecutionEngine *engine, Object *ctor);
163 template <uint index>
172 static ReturnedValue exec(ExecutionEngine *engine,
const Object *o,
const String *s);
DECLARE_HEAP_OBJECT(QmlContext, ExecutionContext)
static CompiledData::RegExp::Flags parseFlags(Scope &scope, const QV4::Value *f)
DEFINE_OBJECT_VTABLE(RegExpCtor)
static int advanceStringIndex(int index, const QString &str, bool unicode)
DEFINE_OBJECT_VTABLE(RegExpObject)
static bool isRegExp(ExecutionEngine *e, const QV4::Value *arg)
static QString minimalPattern(const QString &pattern)
static void advanceLastIndexOnEmptyMatch(ExecutionEngine *e, bool unicode, QV4::Object *rx, const String *matchString, const QString &str)
#define RETURN_UNDEFINED()
static ReturnedValue virtualCall(const FunctionObject *f, const Value *thisObject, const Value *argv, int argc)
ReturnedValue builtinExec(ExecutionEngine *engine, const String *s)
void setLastIndex(int index)
static ReturnedValue method_get_leftContext(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_compile(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue execFirstMatch(const FunctionObject *b, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_get_sticky(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_get_unicode(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_get_flags(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_get_source(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_get_lastMatch_n(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_split(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_match(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_toString(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_get_multiline(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
void init(ExecutionEngine *engine, Object *ctor)
static ReturnedValue method_exec(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_search(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_get_input(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_get_rightContext(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_get_lastParen(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_replace(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_test(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue exec(ExecutionEngine *engine, const Object *o, const String *s)
static ReturnedValue method_get_ignoreCase(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
static ReturnedValue method_get_global(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)