JavaScript:SpiderMonkey:RegExp API: Difference between revisions
Jump to navigation
Jump to search
JSObject
Used to track a JSRegExp, the structure of which we do not expose publically.
JSObject * JS_NewRegExpObjectFromString(JSContext *cx, const? JSString *str, uintN flags, JSBool flat)
Used to build a JSObject which holds a precompiled regular expression to be used in future routines.
I also am not entirely clear on what "flat" does, can someone explain it to me? --Crowder 09:15, 31 August 2006 (PDT)
JSObject * JS_CloneRegExpObject(JSContext *cx, JSObject *obj, JSObject *parent)
Do we need this?
void JS_DestroyRegExpObject(JSContext *cx, JSObject *obj)
Used to destroy the object built with JS_NewRegExpObject.
JSBool JS_ExecuteRegExp(JSContext *cx, JSObject *re, const? JSString *input, JSBool test, jsval *rval)
Executes the expression compiled into re against input. test is a flag which dictates whether or not
we're actually interested in results beyond whether the expression matches or not (ie., for parenthesized parts of the
expression, $1, $2, and so on). The results returned in rval are with JSVAL_NULL, JS_TRUE (if we're only testing),
or a JSArray object containing the discovered result strings. If rval is an array, the 0-index value contains the results
of any substitutions that occurred.
JSObject * JS_NewRegExpObject(JSContext *cx, char *bytes, size_t length, uintN flags)
Already exists.
Wonder why bytes is not const? --Crowder 09:15, 31 August 2006 (PDT)
JSObject * JS_NewUCRegExpObject(JSContext *cx, jschar *chars, size_t length, uintN flags)
Already exists.
void JS_SetRegExpInput(JSContext *cx, JSString *input, JSBool multiline)
Already exists.
void JS_ClearRegExpStatics(JSContext *cx)
Already exists.
void JS_ClearRegExpRoots(JSContext *cx)
Already exists.
(Moving this here from MDC) |
m (Adding some junk that already exists. And some constness questions/changes) |
||
Line 8: | Line 8: | ||
==Routines== | ==Routines== | ||
<dt>JSObject * | <dt>JSObject * JS_NewRegExpObjectFromString(JSContext *cx, <i>const?</i> JSString *str, uintN flags, JSBool flat)</dt> | ||
<dd>Used to build a JSObject which holds a precompiled regular expression to be used in future routines.</dd> | <dd>Used to build a JSObject which holds a precompiled regular expression to be used in future routines.<br><i>I also am not entirely clear on what "flat" does, can someone explain it to me? --[[User:Crowder|Crowder]] 09:15, 31 August 2006 (PDT)</i></dd> | ||
<dt>JSObject * JS_CloneRegExpObject(JSContext *cx, JSObject *obj, JSObject *parent)</dt> | <dt>JSObject * JS_CloneRegExpObject(JSContext *cx, JSObject *obj, JSObject *parent)</dt> | ||
Line 17: | Line 17: | ||
<dd>Used to destroy the object built with JS_NewRegExpObject.</dd> | <dd>Used to destroy the object built with JS_NewRegExpObject.</dd> | ||
<dt>JSBool JS_ExecuteRegExp(JSContext *cx, JSObject *re, JSString *input, JSBool test, jsval *rval)</dt> | <dt>JSBool JS_ExecuteRegExp(JSContext *cx, JSObject *re, <i>const?</i> JSString *input, JSBool test, jsval *rval)</dt> | ||
<dd>Executes the expression compiled into ''re'' against ''input''. ''test'' is a flag which dictates whether or not | <dd>Executes the expression compiled into ''re'' against ''input''. ''test'' is a flag which dictates whether or not | ||
we're actually interested in results beyond whether the expression matches or not (ie., for parenthesized parts of the | we're actually interested in results beyond whether the expression matches or not (ie., for parenthesized parts of the | ||
Line 23: | Line 23: | ||
or a JSArray object containing the discovered result strings. If rval is an array, the 0-index value contains the results | or a JSArray object containing the discovered result strings. If rval is an array, the 0-index value contains the results | ||
of any substitutions that occurred.</dd> | of any substitutions that occurred.</dd> | ||
<dt>JSObject * JS_NewRegExpObject(JSContext *cx, char *bytes, size_t length, uintN flags)</dt> | |||
<dd><i>Already exists.</i><br><i>Wonder why bytes is not const? --[[User:Crowder|Crowder]] 09:15, 31 August 2006 (PDT)</i></dd> | |||
<dt>JSObject * JS_NewUCRegExpObject(JSContext *cx, jschar *chars, size_t length, uintN flags)</dt> | |||
<dd><i>Already exists.</i></dd> | |||
<dt>void JS_SetRegExpInput(JSContext *cx, JSString *input, JSBool multiline)</dt> | |||
<dd><i>Already exists.</i></dd> | |||
<dt>void JS_ClearRegExpStatics(JSContext *cx)</dt> | |||
<dd><i>Already exists.</i></dd> | |||
<dt>void JS_ClearRegExpRoots(JSContext *cx)</dt> | |||
<dd><i>Already exists.</i></dd> | |||
[[Category:SpiderMonkey]] | [[Category:SpiderMonkey]] |
Revision as of 16:15, 31 August 2006
JavaScript Regular Expression API
The purpose of this addition to the JS API is to make ECMA-262 compliant regular expression APIs available to C/C++ users. As with other JS API routines, clients are required to provide a properly initialized execution context (JSContext), and the API has the potential to throw JS exceptions, just as a script might.
Structures
Routines
I also am not entirely clear on what "flat" does, can someone explain it to me? --Crowder 09:15, 31 August 2006 (PDT)
Wonder why bytes is not const? --Crowder 09:15, 31 August 2006 (PDT)