Ruby 4.0.7p0 (2026-09-15 revision 229531a6cfbf07e3caef30dbac24a2a3f3fed482)
pm_char.h
Go to the documentation of this file.
1
6#ifndef PRISM_CHAR_H
7#define PRISM_CHAR_H
8
9#include "prism/defines.h"
11
12#include <stdbool.h>
13#include <stddef.h>
14
24size_t pm_strspn_whitespace(const uint8_t *string, ptrdiff_t length);
25
37size_t pm_strspn_whitespace_newlines(const uint8_t *string, ptrdiff_t length, pm_newline_list_t *newline_list);
38
48size_t pm_strspn_inline_whitespace(const uint8_t *string, ptrdiff_t length);
49
59size_t pm_strspn_decimal_digit(const uint8_t *string, ptrdiff_t length);
60
71size_t pm_strspn_hexadecimal_digit(const uint8_t *string, ptrdiff_t length);
72
89size_t pm_strspn_octal_number(const uint8_t *string, ptrdiff_t length, const uint8_t **invalid);
90
107size_t pm_strspn_decimal_number(const uint8_t *string, ptrdiff_t length, const uint8_t **invalid);
108
125size_t pm_strspn_hexadecimal_number(const uint8_t *string, ptrdiff_t length, const uint8_t **invalid);
126
136size_t pm_strspn_regexp_option(const uint8_t *string, ptrdiff_t length);
137
154size_t pm_strspn_binary_number(const uint8_t *string, ptrdiff_t length, const uint8_t **invalid);
155
162bool pm_char_is_whitespace(const uint8_t b);
163
170bool pm_char_is_inline_whitespace(const uint8_t b);
171
178bool pm_char_is_binary_digit(const uint8_t b);
179
186bool pm_char_is_octal_digit(const uint8_t b);
187
194bool pm_char_is_decimal_digit(const uint8_t b);
195
202bool pm_char_is_hexadecimal_digit(const uint8_t b);
203
204#endif
A list of byte offsets of newlines in a string.
Macro definitions used throughout the prism library.
C99 shim for <stdbool.h>.
A list of offsets of newlines in a string.