Matt S Trout > Rakudo-Star > src/pmc/string.pmc

Download:
Rakudo-Star-2012.08_001.tar.gz

Annotate this POD

Source  

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.

STRING *substr(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

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 STRING str is just an integer. Accepts only '0'-'9' characters, other digit representations aren't allowed.

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

syntax highlighting: