Prism Ruby parser
Loading...
Searching...
No Matches
line_offset_list.h
Go to the documentation of this file.
1
14#ifndef PRISM_LINE_OFFSET_LIST_H
15#define PRISM_LINE_OFFSET_LIST_H
16
17#include "prism/compiler/exported.h"
18#include "prism/compiler/nonnull.h"
19
20#include <stddef.h>
21#include <stdint.h>
22
27typedef struct {
29 size_t size;
30
32 size_t capacity;
33
35 uint32_t *offsets;
37
41typedef struct {
43 int32_t line;
44
46 uint32_t column;
48
59PRISM_EXPORTED_FUNCTION pm_line_column_t pm_line_offset_list_line_column(const pm_line_offset_list_t *list, uint32_t cursor, int32_t start_line) PRISM_NONNULL(1);
60
61#endif
PRISM_EXPORTED_FUNCTION pm_line_column_t pm_line_offset_list_line_column(const pm_line_offset_list_t *list, uint32_t cursor, int32_t start_line) PRISM_NONNULL(1)
Returns the line and column of the given offset.
A line and column in a string.
Definition line_offset_list.h:41
uint32_t column
The column in bytes.
Definition line_offset_list.h:46
int32_t line
The line number.
Definition line_offset_list.h:43
A list of offsets of the start of lines in a string.
Definition line_offset_list.h:27
uint32_t * offsets
The list of offsets.
Definition line_offset_list.h:35
size_t size
The number of offsets in the list.
Definition line_offset_list.h:29
size_t capacity
The capacity of the list that has been allocated.
Definition line_offset_list.h:32