php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
in.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2018 Alexander Borisov
3 *
4 * Author: Alexander Borisov <borisov@lexbor.com>
5 */
6
7#ifndef LEXBOR_IN_H
8#define LEXBOR_IN_H
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14#include "lexbor/core/base.h"
15#include "lexbor/core/dobject.h"
16
17
19typedef int lexbor_in_opt_t;
20
28
29typedef struct {
31}
33
47
48
51
53lexbor_in_init(lexbor_in_t *incoming, size_t chunk_size);
54
55LXB_API void
57
59lexbor_in_destroy(lexbor_in_t *incoming, bool self_destroy);
60
61
64 const lxb_char_t *buf, size_t buf_size);
65
66LXB_API void
68
71 lexbor_in_node_t *node, bool self_destroy);
72
73
76
79
85LXB_API const lxb_char_t *
87 const lxb_char_t *pos, size_t offset);
88
94LXB_API const lxb_char_t *
96 const lxb_char_t *pos, size_t offset);
97
98/*
99 * Inline functions
100 */
103{
104 return node->begin;
105}
106
109{
110 return node->end;
111}
112
113lxb_inline size_t
115{
116 return node->offset;
117}
118
121{
122 return node->next;
123}
124
127{
128 return node->prev;
129}
130
133{
134 return node->incoming;
135}
136
137lxb_inline bool
139{
140 return node->begin <= data && node->end >= data;
141}
142
143/*
144 * No inline functions for ABI.
145 */
146LXB_API const lxb_char_t *
148
149LXB_API const lxb_char_t *
151
152LXB_API size_t
154
157
160
163
164LXB_API bool
166
167
168#ifdef __cplusplus
169} /* extern "C" */
170#endif
171
172#endif /* LEXBOR_IN_H */
#define LXB_API
Definition def.h:48
zend_ffi_ctype_name_buf buf
Definition ffi.c:4685
zend_long offset
LXB_API const lxb_char_t * lexbor_in_node_begin_noi(const lexbor_in_node_t *node)
Definition in.c:228
LXB_API lexbor_in_node_t * lexbor_in_node_split(lexbor_in_node_t *node, const lxb_char_t *pos)
Definition in.c:112
lxb_inline bool lexbor_in_segment(const lexbor_in_node_t *node, const lxb_char_t *data)
Definition in.h:138
LXB_API void lexbor_in_clean(lexbor_in_t *incoming)
Definition in.c:35
LXB_API lexbor_in_node_t * lexbor_in_node_destroy(lexbor_in_t *incoming, lexbor_in_node_t *node, bool self_destroy)
Definition in.c:97
lxb_inline lexbor_in_node_t * lexbor_in_node_next(const lexbor_in_node_t *node)
Definition in.h:120
LXB_API const lxb_char_t * lexbor_in_node_pos_up(lexbor_in_node_t *node, lexbor_in_node_t **return_node, const lxb_char_t *pos, size_t offset)
Definition in.c:159
LXB_API const lxb_char_t * lexbor_in_node_end_noi(const lexbor_in_node_t *node)
Definition in.c:234
LXB_API lexbor_in_t * lexbor_in_create(void)
Definition in.c:12
lxb_inline const lxb_char_t * lexbor_in_node_begin(const lexbor_in_node_t *node)
Definition in.h:102
LXB_API lexbor_in_node_t * lexbor_in_node_make(lexbor_in_t *incoming, lexbor_in_node_t *last_node, const lxb_char_t *buf, size_t buf_size)
Definition in.c:57
LXB_API void lexbor_in_node_clean(lexbor_in_node_t *node)
Definition in.c:87
LXB_API lexbor_in_node_t * lexbor_in_node_prev_noi(const lexbor_in_node_t *node)
Definition in.c:252
struct lexbor_in_node lexbor_in_node_t
Definition in.h:18
lxb_inline const lxb_char_t * lexbor_in_node_end(const lexbor_in_node_t *node)
Definition in.h:108
lxb_inline lexbor_in_node_t * lexbor_in_node_prev(const lexbor_in_node_t *node)
Definition in.h:126
LXB_API lexbor_in_t * lexbor_in_node_in_noi(const lexbor_in_node_t *node)
Definition in.c:258
lxb_inline lexbor_in_t * lexbor_in_node_in(const lexbor_in_node_t *node)
Definition in.h:132
LXB_API lexbor_in_node_t * lexbor_in_node_find(lexbor_in_node_t *node, const lxb_char_t *pos)
Definition in.c:145
lexbor_in_opt
Definition in.h:21
@ LEXBOR_IN_OPT_ALLOC
Definition in.h:26
@ LEXBOR_IN_OPT_UNDEF
Definition in.h:22
@ LEXBOR_IN_OPT_DONE
Definition in.h:24
@ LEXBOR_IN_OPT_READONLY
Definition in.h:23
@ LEXBOR_IN_OPT_FAKE
Definition in.h:25
LXB_API lexbor_in_t * lexbor_in_destroy(lexbor_in_t *incoming, bool self_destroy)
Definition in.c:41
LXB_API const lxb_char_t * lexbor_in_node_pos_down(lexbor_in_node_t *node, lexbor_in_node_t **return_node, const lxb_char_t *pos, size_t offset)
Definition in.c:192
LXB_API bool lexbor_in_segment_noi(const lexbor_in_node_t *node, const lxb_char_t *data)
Definition in.c:264
lxb_inline size_t lexbor_in_node_offset(const lexbor_in_node_t *node)
Definition in.h:114
LXB_API lexbor_in_node_t * lexbor_in_node_next_noi(const lexbor_in_node_t *node)
Definition in.c:246
int lexbor_in_opt_t
Definition in.h:19
LXB_API lxb_status_t lexbor_in_init(lexbor_in_t *incoming, size_t chunk_size)
Definition in.c:18
LXB_API size_t lexbor_in_node_offset_noi(const lexbor_in_node_t *node)
Definition in.c:240
unsigned const char * pos
Definition php_ffi.h:52
zend_constant * data
size_t offset
Definition in.h:35
const lxb_char_t * begin
Definition in.h:38
lexbor_in_opt_t opt
Definition in.h:36
lexbor_in_t * incoming
Definition in.h:45
lexbor_in_node_t * next
Definition in.h:42
const lxb_char_t * end
Definition in.h:39
lexbor_in_node_t * prev
Definition in.h:43
const lxb_char_t * use
Definition in.h:40
lexbor_dobject_t * nodes
Definition in.h:30
unsigned int lxb_status_t
Definition types.h:28
#define lxb_inline
Definition types.h:21
unsigned char lxb_char_t
Definition types.h:27