14 #ifndef PRISM_NEWLINE_LIST_H
15 #define PRISM_NEWLINE_LIST_H
Macro definitions used throughout the prism library.
pm_line_column_t pm_newline_list_line_column(const pm_newline_list_t *list, const uint8_t *cursor, int32_t start_line)
Returns the line and column of the given offset.
Definition: pm_newline_list.c:92
void pm_newline_list_free(pm_newline_list_t *list)
Free the internal memory allocated for the newline list.
Definition: pm_newline_list.c:123
int32_t pm_newline_list_line(const pm_newline_list_t *list, const uint8_t *cursor, int32_t start_line)
Returns the line of the given offset.
Definition: pm_newline_list.c:62
bool pm_newline_list_init(pm_newline_list_t *list, const uint8_t *start, size_t capacity)
Initialize a new newline list with the given capacity.
Definition: pm_newline_list.c:8
bool pm_newline_list_append(pm_newline_list_t *list, const uint8_t *cursor)
Append a new offset to the newline list.
Definition: pm_newline_list.c:35
void pm_newline_list_clear(pm_newline_list_t *list)
Clear out the newlines that have been appended to the list.
Definition: pm_newline_list.c:26
A line and column in a string.
Definition: pm_newline_list.h:45
uint32_t column
The column number.
Definition: pm_newline_list.h:50
int32_t line
The line number.
Definition: pm_newline_list.h:47
A list of offsets of newlines in a string.
Definition: pm_newline_list.h:28
const uint8_t * start
A pointer to the start of the source string.
Definition: pm_newline_list.h:30
size_t capacity
The capacity of the list that has been allocated.
Definition: pm_newline_list.h:36
size_t * offsets
The list of offsets.
Definition: pm_newline_list.h:39
size_t size
The number of offsets in the list.
Definition: pm_newline_list.h:33