Prism Ruby parser
|
A structure represents an arbitrary-sized integer. More...
#include <pm_integer.h>
Public Member Functions | |
PRISM_EXPORTED_FUNCTION void | pm_integer_string (pm_buffer_t *buffer, const pm_integer_t *integer) |
Convert an integer to a decimal string. | |
PRISM_EXPORTED_FUNCTION void | pm_integer_free (pm_integer_t *integer) |
Free the internal memory of an integer. | |
Data Fields | |
size_t | length |
The number of allocated values. | |
uint32_t * | values |
List of 32-bit integers. | |
uint32_t | value |
Embedded value for small integer. | |
bool | negative |
Whether or not the integer is negative. | |
A structure represents an arbitrary-sized integer.
PRISM_EXPORTED_FUNCTION void pm_integer_string | ( | pm_buffer_t * | buffer, |
const pm_integer_t * | integer | ||
) |
Convert an integer to a decimal string.
buffer | The buffer to append the string to. |
integer | The integer to convert to a string. |
PRISM_EXPORTED_FUNCTION void pm_integer_free | ( | pm_integer_t * | integer | ) |
Free the internal memory of an integer.
This memory will only be allocated if the integer exceeds the size of a single node in the linked list.
integer | The integer to free. |
size_t pm_integer_t::length |
The number of allocated values.
length is set to 0 if the integer fits into uint32_t.
uint32_t* pm_integer_t::values |
List of 32-bit integers.
Set to NULL if the integer fits into uint32_t.
uint32_t pm_integer_t::value |
Embedded value for small integer.
This value is set to 0 if the value does not fit into uint32_t.
bool pm_integer_t::negative |
Whether or not the integer is negative.
It is stored this way so that a zeroed pm_integer_t is always positive zero.