Sourceforge.net - The VCF's Project Host
   The VCF Website Home   |   Online Discussion Forums   |   Sourceforge.net Project Page   

vcf/JavaScriptKit/js-impl/jsstr.h File Reference


Classes

struct  JSString
struct  JSDependentString
struct  JSSubString

Defines

#define JSSTRFLAG_BITS   2
#define JSSTRFLAG_SHIFT(flg)   ((size_t)(flg) << JSSTRING_LENGTH_BITS)
#define JSSTRFLAG_MASK   JSSTRFLAG_SHIFT(JS_BITMASK(JSSTRFLAG_BITS))
#define JSSTRFLAG_DEPENDENT   JSSTRFLAG_SHIFT(1)
#define JSSTRFLAG_PREFIX   JSSTRFLAG_SHIFT(2)
#define JSSTRING_BIT(n)   ((size_t)1 << (n))
#define JSSTRING_BITMASK(n)   (JSSTRING_BIT(n) - 1)
#define JSSTRING_HAS_FLAG(str, flg)   ((str)->length & (flg))
#define JSSTRING_IS_DEPENDENT(str)   JSSTRING_HAS_FLAG(str, JSSTRFLAG_DEPENDENT)
#define JSSTRING_IS_PREFIX(str)   JSSTRING_HAS_FLAG(str, JSSTRFLAG_PREFIX)
#define JSSTRING_CHARS(str)
#define JSSTRING_LENGTH(str)
#define JSSTRING_LENGTH_BITS
#define JSSTRING_LENGTH_MASK   JSSTRING_BITMASK(JSSTRING_LENGTH_BITS)
#define JSSTRDEP_START_BITS   (JSSTRING_LENGTH_BITS-JSSTRDEP_LENGTH_BITS)
#define JSSTRDEP_START_SHIFT   JSSTRDEP_LENGTH_BITS
#define JSSTRDEP_START_MASK   JSSTRING_BITMASK(JSSTRDEP_START_BITS)
#define JSSTRDEP_LENGTH_BITS   (JSSTRING_LENGTH_BITS / 2)
#define JSSTRDEP_LENGTH_MASK   JSSTRING_BITMASK(JSSTRDEP_LENGTH_BITS)
#define JSSTRDEP(str)   ((JSDependentString *)(str))
#define JSSTRDEP_START(str)
#define JSSTRDEP_LENGTH(str)
#define JSSTRDEP_SET_START_AND_LENGTH(str, off, len)
#define JSPREFIX_SET_LENGTH(str, len)   (JSSTRDEP(str)->length = JSSTRFLAG_DEPENDENT | JSSTRFLAG_PREFIX | (len))
#define JSSTRDEP_BASE(str)   (JSSTRDEP(str)->base)
#define JSSTRDEP_SET_BASE(str, bstr)   (JSSTRDEP(str)->base = (bstr))
#define JSPREFIX_BASE(str)   JSSTRDEP_BASE(str)
#define JSPREFIX_SET_BASE(str, bstr)   JSSTRDEP_SET_BASE(str,bstr)
#define JSSTRDEP_CHARS(str)
#define JS_CCODE(c)   (js_A[js_Y[(js_X[(uint16)(c)>>6]<<6)|((c)&0x3F)]])
#define JS_CTYPE(c)   (JS_CCODE(c) & 0x1F)
#define JS_ISALPHA(c)
#define JS_ISALNUM(c)
#define JS_ISLETTER(c)
#define JS_ISIDPART(c)
#define JS_ISFORMAT(c)   (((1 << JSCT_FORMAT) >> JS_CTYPE(c)) & 1)
#define JS_ISWORD(c)   ((c) < 128 && (isalnum(c) || (c) == '_'))
#define JS_ISIDSTART(c)   (JS_ISLETTER(c) || (c) == '_' || (c) == '$')
#define JS_ISIDENT(c)   (JS_ISIDPART(c) || (c) == '_' || (c) == '$')
#define JS_ISXMLSPACE(c)
#define JS_ISXMLNSSTART(c)   ((JS_CCODE(c) & 0x00000100) || (c) == '_')
#define JS_ISXMLNS(c)
#define JS_ISXMLNAMESTART(c)   (JS_ISXMLNSSTART(c) || (c) == ':')
#define JS_ISXMLNAME(c)   (JS_ISXMLNS(c) || (c) == ':')
#define JS_ISDIGIT(c)   (JS_CTYPE(c) == JSCT_DECIMAL_DIGIT_NUMBER)
#define JS_ISSPACE(c)   ((JS_CCODE(c) & 0x00070000) == 0x00040000)
#define JS_ISPRINT(c)   ((c) < 128 && isprint(c))
#define JS_ISUPPER(c)   (JS_CTYPE(c) == JSCT_UPPERCASE_LETTER)
#define JS_ISLOWER(c)   (JS_CTYPE(c) == JSCT_LOWERCASE_LETTER)
#define JS_TOUPPER(c)
#define JS_TOLOWER(c)
#define JS7_ISDEC(c)   ((((unsigned)(c)) - '0') <= 9)
#define JS7_UNDEC(c)   ((c) - '0')
#define JS7_ISHEX(c)   ((c) < 128 && isxdigit(c))
#define JS7_UNHEX(c)   (uintN)(JS7_ISDEC(c) ? (c) - '0' : 10 + tolower(c) - 'a')
#define JS7_ISLET(c)   ((c) < 128 && isalpha(c))
#define js_ValueToPrintableString(cx, v)   js_ValueToPrintable(cx, v, js_ValueToString)
#define js_ValueToPrintableSource(cx, v)   js_ValueToPrintable(cx, v, js_ValueToSource)
#define BMH_CHARSET_SIZE   256
#define BMH_PATLEN_MAX   255
#define BMH_BAD_PATTERN   (-2)
#define js_strncpy(t, s, n)   memcpy((t), (s), (n) * sizeof(jschar))

Typedefs

typedef JSString *(* JSValueToStringFun )(JSContext *cx, jsval v)

Enumerations

enum  JSCharType {
  JSCT_UNASSIGNED = 0, JSCT_UPPERCASE_LETTER = 1, JSCT_LOWERCASE_LETTER = 2, JSCT_TITLECASE_LETTER = 3,
  JSCT_MODIFIER_LETTER = 4, JSCT_OTHER_LETTER = 5, JSCT_NON_SPACING_MARK = 6, JSCT_ENCLOSING_MARK = 7,
  JSCT_COMBINING_SPACING_MARK = 8, JSCT_DECIMAL_DIGIT_NUMBER = 9, JSCT_LETTER_NUMBER = 10, JSCT_OTHER_NUMBER = 11,
  JSCT_SPACE_SEPARATOR = 12, JSCT_LINE_SEPARATOR = 13, JSCT_PARAGRAPH_SEPARATOR = 14, JSCT_CONTROL = 15,
  JSCT_FORMAT = 16, JSCT_PRIVATE_USE = 18, JSCT_SURROGATE = 19, JSCT_DASH_PUNCTUATION = 20,
  JSCT_START_PUNCTUATION = 21, JSCT_END_PUNCTUATION = 22, JSCT_CONNECTOR_PUNCTUATION = 23, JSCT_OTHER_PUNCTUATION = 24,
  JSCT_MATH_SYMBOL = 25, JSCT_CURRENCY_SYMBOL = 26, JSCT_MODIFIER_SYMBOL = 27, JSCT_OTHER_SYMBOL = 28
}

Functions

size_t js_MinimizeDependentStrings (JSString *str, int level, JSString **basep)
jscharjs_GetDependentStringChars (JSString *str)
jscharjs_GetStringChars (JSString *str)
JSStringjs_ConcatStrings (JSContext *cx, JSString *left, JSString *right)
const jscharjs_UndependString (JSContext *cx, JSString *str)
JSBool js_InitRuntimeStringState (JSContext *cx)
void js_FinishRuntimeStringState (JSContext *cx)
void js_FinishDeflatedStringCache (JSRuntime *rt)
JSObjectjs_InitStringClass (JSContext *cx, JSObject *obj)
JSStringjs_NewString (JSContext *cx, jschar *chars, size_t length, uintN gcflag)
JSStringjs_NewDependentString (JSContext *cx, JSString *base, size_t start, size_t length, uintN gcflag)
JSStringjs_NewStringCopyN (JSContext *cx, const jschar *s, size_t n, uintN gcflag)
JSStringjs_NewStringCopyZ (JSContext *cx, const jschar *s, uintN gcflag)
void js_FinalizeString (JSContext *cx, JSString *str)
void js_FinalizeStringRT (JSRuntime *rt, JSString *str)
JSObjectjs_StringToObject (JSContext *cx, JSString *str)
 JS_FRIEND_API (const char *) js_ValueToPrintable(JSContext *cx
 JS_FRIEND_API (JSString *) js_ValueToString(JSContext *cx
intN js_CompareStrings (JSString *str1, JSString *str2)
JSBool js_EqualStrings (JSString *str1, JSString *str2)
jsint js_BoyerMooreHorspool (const jschar *text, jsint textlen, const jschar *pat, jsint patlen, jsint start)
size_t js_strlen (const jschar *s)
jscharjs_strchr (const jschar *s, jschar c)
jscharjs_strchr_limit (const jschar *s, jschar c, const jschar *limit)
const jscharjs_SkipWhiteSpace (const jschar *s)
jscharjs_InflateString (JSContext *cx, const char *bytes, size_t *length)
char * js_DeflateString (JSContext *cx, const jschar *chars, size_t length)
JSBool js_InflateStringToBuffer (JSContext *cx, const char *bytes, size_t length, jschar *chars, size_t *charsLength)
JSBool js_DeflateStringToBuffer (JSContext *cx, const jschar *chars, size_t charsLength, char *bytes, size_t *length)
JSBool js_SetStringBytes (JSRuntime *rt, JSString *str, char *bytes, size_t length)
char * js_GetStringBytes (JSRuntime *rt, JSString *str)
void js_PurgeDeflatedStringCache (JSRuntime *rt, JSString *str)
JSBool js_str_escape (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
int js_OneUcs4ToUtf8Char (uint8 *utf8Buffer, uint32 ucs4Char)

Variables

jschar js_empty_ucstr []
JSSubString js_EmptySubString
const uint8 js_X []
const uint8 js_Y []
const uint32 js_A []
JSClass js_StringClass
const char js_escape_str []
const char js_unescape_str []
const char js_uneval_str []
const char js_decodeURI_str []
const char js_encodeURI_str []
const char js_decodeURIComponent_str []
const char js_encodeURIComponent_str []
jsval v
jsval JSValueToStringFun v2sfun
jsval v
jsval v

Define Documentation

#define BMH_BAD_PATTERN   (-2)
 

#define BMH_CHARSET_SIZE   256
 

#define BMH_PATLEN_MAX   255
 

#define JS7_ISDEC  )     ((((unsigned)(c)) - '0') <= 9)
 

#define JS7_ISHEX  )     ((c) < 128 && isxdigit(c))
 

#define JS7_ISLET  )     ((c) < 128 && isalpha(c))
 

#define JS7_UNDEC  )     ((c) - '0')
 

#define JS7_UNHEX  )     (uintN)(JS7_ISDEC(c) ? (c) - '0' : 10 + tolower(c) - 'a')
 

#define JS_CCODE  )     (js_A[js_Y[(js_X[(uint16)(c)>>6]<<6)|((c)&0x3F)]])
 

#define JS_CTYPE  )     (JS_CCODE(c) & 0x1F)
 

#define JS_ISALNUM  ) 
 

Value:

#define JS_ISALPHA  ) 
 

Value:

((((1 << JSCT_UPPERCASE_LETTER) |                     \
                           (1 << JSCT_LOWERCASE_LETTER) |                     \
                           (1 << JSCT_TITLECASE_LETTER) |                     \
                           (1 << JSCT_MODIFIER_LETTER) |                      \
                           (1 << JSCT_OTHER_LETTER))                          \
                          >> JS_CTYPE(c)) & 1)

#define JS_ISDIGIT  )     (JS_CTYPE(c) == JSCT_DECIMAL_DIGIT_NUMBER)
 

#define JS_ISFORMAT  )     (((1 << JSCT_FORMAT) >> JS_CTYPE(c)) & 1)
 

#define JS_ISIDENT  )     (JS_ISIDPART(c) || (c) == '_' || (c) == '$')
 

#define JS_ISIDPART  ) 
 

Value:

#define JS_ISIDSTART  )     (JS_ISLETTER(c) || (c) == '_' || (c) == '$')
 

#define JS_ISLETTER  ) 
 

Value:

((((1 << JSCT_UPPERCASE_LETTER) |                    \
                            (1 << JSCT_LOWERCASE_LETTER) |                    \
                            (1 << JSCT_TITLECASE_LETTER) |                    \
                            (1 << JSCT_MODIFIER_LETTER) |                     \
                            (1 << JSCT_OTHER_LETTER) |                        \
                            (1 << JSCT_LETTER_NUMBER))                        \
                           >> JS_CTYPE(c)) & 1)

#define JS_ISLOWER  )     (JS_CTYPE(c) == JSCT_LOWERCASE_LETTER)
 

#define JS_ISPRINT  )     ((c) < 128 && isprint(c))
 

#define JS_ISSPACE  )     ((JS_CCODE(c) & 0x00070000) == 0x00040000)
 

#define JS_ISUPPER  )     (JS_CTYPE(c) == JSCT_UPPERCASE_LETTER)
 

#define JS_ISWORD  )     ((c) < 128 && (isalnum(c) || (c) == '_'))
 

#define JS_ISXMLNAME  )     (JS_ISXMLNS(c) || (c) == ':')
 

#define JS_ISXMLNAMESTART  )     (JS_ISXMLNSSTART(c) || (c) == ':')
 

#define JS_ISXMLNS  ) 
 

Value:

((JS_CCODE(c) & 0x00000080) || (c) == '.' ||  \
                                 (c) == '-' || (c) == '_')

#define JS_ISXMLNSSTART  )     ((JS_CCODE(c) & 0x00000100) || (c) == '_')
 

#define JS_ISXMLSPACE  ) 
 

Value:

((c) == ' ' || (c) == '\t' || (c) == '\r' ||  \
                                 (c) == '\n')

#define js_strncpy t,
s,
n   )     memcpy((t), (s), (n) * sizeof(jschar))
 

#define JS_TOLOWER  ) 
 

Value:

((jschar) ((JS_CCODE(c) & 0x00200000)                 \
                                   ? (c) + ((int32)JS_CCODE(c) >> 22)         \
                                   : (c)))

#define JS_TOUPPER  ) 
 

Value:

((jschar) ((JS_CCODE(c) & 0x00100000)                 \
                                   ? (c) - ((int32)JS_CCODE(c) >> 22)         \
                                   : (c)))

#define js_ValueToPrintableSource cx,
v   )     js_ValueToPrintable(cx, v, js_ValueToSource)
 

#define js_ValueToPrintableString cx,
v   )     js_ValueToPrintable(cx, v, js_ValueToString)
 

#define JSPREFIX_BASE str   )     JSSTRDEP_BASE(str)
 

#define JSPREFIX_SET_BASE str,
bstr   )     JSSTRDEP_SET_BASE(str,bstr)
 

#define JSPREFIX_SET_LENGTH str,
len   )     (JSSTRDEP(str)->length = JSSTRFLAG_DEPENDENT | JSSTRFLAG_PREFIX | (len))
 

#define JSSTRDEP str   )     ((JSDependentString *)(str))
 

#define JSSTRDEP_BASE str   )     (JSSTRDEP(str)->base)
 

#define JSSTRDEP_CHARS str   ) 
 

Value:

#define JSSTRDEP_LENGTH str   ) 
 

Value:

#define JSSTRDEP_LENGTH_BITS   (JSSTRING_LENGTH_BITS / 2)
 

#define JSSTRDEP_LENGTH_MASK   JSSTRING_BITMASK(JSSTRDEP_LENGTH_BITS)
 

#define JSSTRDEP_SET_BASE str,
bstr   )     (JSSTRDEP(str)->base = (bstr))
 

#define JSSTRDEP_SET_START_AND_LENGTH str,
off,
len   ) 
 

Value:

(JSSTRDEP(str)->length = JSSTRFLAG_DEPENDENT                              \
                           | ((off) << JSSTRDEP_START_SHIFT)                  \
                           | (len))

#define JSSTRDEP_START str   ) 
 

Value:

#define JSSTRDEP_START_BITS   (JSSTRING_LENGTH_BITS-JSSTRDEP_LENGTH_BITS)
 

#define JSSTRDEP_START_MASK   JSSTRING_BITMASK(JSSTRDEP_START_BITS)
 

#define JSSTRDEP_START_SHIFT   JSSTRDEP_LENGTH_BITS
 

#define JSSTRFLAG_BITS   2
 

#define JSSTRFLAG_DEPENDENT   JSSTRFLAG_SHIFT(1)
 

#define JSSTRFLAG_MASK   JSSTRFLAG_SHIFT(JS_BITMASK(JSSTRFLAG_BITS))
 

#define JSSTRFLAG_PREFIX   JSSTRFLAG_SHIFT(2)
 

#define JSSTRFLAG_SHIFT flg   )     ((size_t)(flg) << JSSTRING_LENGTH_BITS)
 

#define JSSTRING_BIT n   )     ((size_t)1 << (n))
 

#define JSSTRING_BITMASK n   )     (JSSTRING_BIT(n) - 1)
 

#define JSSTRING_CHARS str   ) 
 

Value:

#define JSSTRING_HAS_FLAG str,
flg   )     ((str)->length & (flg))
 

#define JSSTRING_IS_DEPENDENT str   )     JSSTRING_HAS_FLAG(str, JSSTRFLAG_DEPENDENT)
 

#define JSSTRING_IS_PREFIX str   )     JSSTRING_HAS_FLAG(str, JSSTRFLAG_PREFIX)
 

#define JSSTRING_LENGTH str   ) 
 

Value:

#define JSSTRING_LENGTH_BITS
 

Value:

(sizeof(size_t) * JS_BITS_PER_BYTE        \
                                     - JSSTRFLAG_BITS)

#define JSSTRING_LENGTH_MASK   JSSTRING_BITMASK(JSSTRING_LENGTH_BITS)
 


Typedef Documentation

typedef JSString*(* JSValueToStringFun)(JSContext *cx, jsval v)
 


Enumeration Type Documentation

enum JSCharType
 

Enumerator:
JSCT_UNASSIGNED 
JSCT_UPPERCASE_LETTER 
JSCT_LOWERCASE_LETTER 
JSCT_TITLECASE_LETTER 
JSCT_MODIFIER_LETTER 
JSCT_OTHER_LETTER 
JSCT_NON_SPACING_MARK 
JSCT_ENCLOSING_MARK 
JSCT_COMBINING_SPACING_MARK 
JSCT_DECIMAL_DIGIT_NUMBER 
JSCT_LETTER_NUMBER 
JSCT_OTHER_NUMBER 
JSCT_SPACE_SEPARATOR 
JSCT_LINE_SEPARATOR 
JSCT_PARAGRAPH_SEPARATOR 
JSCT_CONTROL 
JSCT_FORMAT 
JSCT_PRIVATE_USE 
JSCT_SURROGATE 
JSCT_DASH_PUNCTUATION 
JSCT_START_PUNCTUATION 
JSCT_END_PUNCTUATION 
JSCT_CONNECTOR_PUNCTUATION 
JSCT_OTHER_PUNCTUATION 
JSCT_MATH_SYMBOL 
JSCT_CURRENCY_SYMBOL 
JSCT_MODIFIER_SYMBOL 
JSCT_OTHER_SYMBOL 


Function Documentation

jsint js_BoyerMooreHorspool const jschar text,
jsint  textlen,
const jschar pat,
jsint  patlen,
jsint  start
 

intN js_CompareStrings JSString str1,
JSString str2
 

JSString* js_ConcatStrings JSContext cx,
JSString left,
JSString right
 

char* js_DeflateString JSContext cx,
const jschar chars,
size_t  length
 

JSBool js_DeflateStringToBuffer JSContext cx,
const jschar chars,
size_t  charsLength,
char *  bytes,
size_t *  length
 

JSBool js_EqualStrings JSString str1,
JSString str2
 

void js_FinalizeString JSContext cx,
JSString str
 

void js_FinalizeStringRT JSRuntime rt,
JSString str
 

void js_FinishDeflatedStringCache JSRuntime rt  ) 
 

void js_FinishRuntimeStringState JSContext cx  ) 
 

JS_FRIEND_API JSString  ) 
 

JS_FRIEND_API const char *   ) 
 

jschar* js_GetDependentStringChars JSString str  ) 
 

char* js_GetStringBytes JSRuntime rt,
JSString str
 

jschar* js_GetStringChars JSString str  ) 
 

jschar* js_InflateString JSContext cx,
const char *  bytes,
size_t *  length
 

JSBool js_InflateStringToBuffer JSContext cx,
const char *  bytes,
size_t  length,
jschar chars,
size_t *  charsLength
 

JSBool js_InitRuntimeStringState JSContext cx  ) 
 

JSObject* js_InitStringClass JSContext cx,
JSObject obj
 

size_t js_MinimizeDependentStrings JSString str,
int  level,
JSString **  basep
 

JSString* js_NewDependentString JSContext cx,
JSString base,
size_t  start,
size_t  length,
uintN  gcflag
 

JSString* js_NewString JSContext cx,
jschar chars,
size_t  length,
uintN  gcflag
 

JSString* js_NewStringCopyN JSContext cx,
const jschar s,
size_t  n,
uintN  gcflag
 

JSString* js_NewStringCopyZ JSContext cx,
const jschar s,
uintN  gcflag
 

int js_OneUcs4ToUtf8Char uint8 utf8Buffer,
uint32  ucs4Char
 

void js_PurgeDeflatedStringCache JSRuntime rt,
JSString str
 

JSBool js_SetStringBytes JSRuntime rt,
JSString str,
char *  bytes,
size_t  length
 

const jschar* js_SkipWhiteSpace const jschar s  ) 
 

JSBool js_str_escape JSContext cx,
JSObject obj,
uintN  argc,
jsval argv,
jsval rval
 

jschar* js_strchr const jschar s,
jschar  c
 

jschar* js_strchr_limit const jschar s,
jschar  c,
const jschar limit
 

JSObject* js_StringToObject JSContext cx,
JSString str
 

size_t js_strlen const jschar s  ) 
 

const jschar* js_UndependString JSContext cx,
JSString str
 


Variable Documentation

const uint32 js_A[]
 

const char js_decodeURI_str[]
 

const char js_decodeURIComponent_str[]
 

jschar js_empty_ucstr[]
 

JSSubString js_EmptySubString
 

const char js_encodeURI_str[]
 

const char js_encodeURIComponent_str[]
 

const char js_escape_str[]
 

JSClass js_StringClass
 

const char js_unescape_str[]
 

const char js_uneval_str[]
 

const uint8 js_X[]
 

const uint8 js_Y[]
 

jsval v
 

jsval v
 

jsval v
 

jsval JSValueToStringFun v2sfun
 

   Comments or Suggestions?    License Information