NAME

src/pmc/string.pmc - String PMC Class

DESCRIPTION

String extends scalar to provide a string for languages that want a string type without going to an S register. It acts as a wrapper for the functions in src/string.c.

Methods

void init()
Initializes the string.
void mark()
Marks the string as live.
PMC *clone()
Creates a copy of the string.
INTVAL get_integer()
Returns the integer representation of the string.
FLOATVAL get_number()
Returns the floating-point representation of the string.
STRING *get_string()
Returns the string itself.
INTVAL get_bool()
Returns the boolean value of the string.
VOID set_integer_native(INTVAL value)
VOID set_bool(INTVAL value)
Sets the value of the string to the integer value.
VOID set_number_native(FLOATVAL value)
Sets the value of the string to the floating-point value.
VOID set_string_native(STRING *value)
Sets the value of the string to that of the specified string.
VOID assign_string_native(STRING *value)
Sets the value of the string to a copy of the specified string.
VOID set_pmc(PMC *value)
Sets the value of the string to the string value of the specified PMC.
INTVAL is_equal(PMC *value)
Compares the string with value; returns true if they match.
INTVAL is_equal_num(PMC *value)
Compares the numerical value of the string with that of value; returns true if they match.
INTVAL is_equal_string(PMC *value)
Compares the string with value; returns FALSE if they match.
INTVAL cmp(PMC *value)
Compares the string with value; returns -1 if the string is smaller, 0 if they are equal, and 1 if value is smaller.
INTVAL cmp_num(PMC *value)
Compares the numerical value of the string with that of value; returns -1 if the string is smaller, 0 if they are equal, and 1 if value is smaller.
INTVAL cmp_string(PMC *value)
Compares the string with value; returns -1 if the string is smaller, 0 if they are equal, and 1 if value is smaller.
void substr(INTVAL offset, INTVAL length, PMC *dest)
Extracts the substring starting at offset, with size length, and places it in dest.
STRING *substr_str(INTVAL offset, INTVAL length)
Extracts the substring starting at offset, with size length, and returns it.
INTVAL exists_keyed(PMC *key)
Returns true if the key'th character in the string exists. Negative numbers count from the end.
STRING *get_string_keyed(PMC *key)
Returns the key'th character in the string. Negative numbers count from the end.
INTVAL get_integer_keyed(PMC *key)
Returns the integer value (ord) at *key.
void set_string_keyed(PMC *key, STRING *val)
Replace the string at key with value.
void set_integer_keyed(PMC *key, INTVAL val)
Replace the string at key with the chr of value.
void replace(STRING *orig, STRING *_new)
Replace every occurrence of orig with _new.
PMC *to_int(INTVAL base)
Return the integer equivalent of SELF, which is assumed to be a base digit string. The String is assumed to be in an ascii-compatible encoding. The String is considered being unsigned, and no + or - chars are processed. base has to be within [2..36].If any chars in the String aren't converted, an exception is thrown.TODO Currently overflow to BigInt is not handled nor detected.

Iterator Interface

PMC *get_iter(PMC *key)
Return a new iterator for this string.
INTVAL elements()
Return length of the string.

Freeze/thaw Interface

void freeze(PMC *info)
Used to archive the string.
void thaw(PMC *info)
Used to unarchive the string.

NCI methods

PMC *lower()
Downcase this string
void trans(STRING *src, PMC *trams_table)
Translate ascii string src with entries from trans_table.
void reverse(STRING *src)
Either reverse this PMC's contents or set this PMC's value to the reverse of src, if present.
INTEGER is_integer(STRING *src)
Checks if the ascii STRING str is just an integer.
INTEGER reverse_index(STRING *substring, INTVAL start)
Find last occurrence of substring, but not after the start position.
STRING *unescape()
EXPERIMENTAL, for testing only. See TT #1628