ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
xml_reader_internal.h
Go to the documentation of this file.
1
12#pragma once
13
14#include <stddef.h>
15#include <stdint.h>
16
17#include "ra8_attributes.h"
18#include "xml.h"
19
34RA8_INTERNAL static bool internal_space(uint8_t c);
35
50RA8_INTERNAL static bool internal_ascii_letter(uint8_t c);
51
66RA8_INTERNAL static bool internal_name_start(uint8_t c);
67
82RA8_INTERNAL static bool internal_name_continue(uint8_t c);
83
102RA8_INTERNAL static ra8_err_t internal_attr_parse(const uint8_t* source,
103 size_t source_len,
104 uint32_t end,
105 xml_attr_cursor_t* cursor,
106 xml_attribute_t* out);
107
126RA8_INTERNAL static bool internal_attr_duplicate(const uint8_t* source,
127 size_t source_len,
128 const xml_event_t* event,
129 const xml_attribute_t* current,
130 uint16_t prior_count);
131
150internal_markup_end(const uint8_t* source, size_t length, size_t start, size_t* out_end);
151
169internal_attributes(const uint8_t* source, size_t source_len, xml_event_t* event);
170
188
205RA8_INTERNAL static ra8_err_t internal_end(xml_reader_t* reader, size_t end, xml_event_t* event);
206
225RA8_INTERNAL static ra8_err_t internal_terminator(const uint8_t* source,
226 size_t length,
227 size_t start,
228 const char* terminator,
229 size_t* out_start);
230
246
263RA8_INTERNAL static bool internal_xml_target(const uint8_t* source, size_t start, size_t end);
264
280RA8_INTERNAL static bool internal_encoding(const uint8_t* source, xml_span_t value);
281
301RA8_INTERNAL static bool internal_declaration_attr(const uint8_t* source,
302 size_t source_len,
303 const xml_attribute_t* attribute,
304 uint16_t ordinal,
305 bool* saw_encoding,
306 bool* saw_standalone);
307
325internal_declaration(xml_reader_t* reader, size_t target_end, size_t term);
326
342
359
377internal_special(xml_reader_t* reader, xml_event_t* event, bool* out_emitted);
378
Annotation-attribute framework macros for ra8-firmware.
#define RA8_INTERNAL
Marker that a function is intended to be static (file-local).
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Definition ra8_err.h:546
Mutable cursor for one start event's attributes.
Definition xml.h:87
Source-order attribute view.
Definition xml.h:81
One XML pull event.
Definition xml.h:71
Pull-reader state; initialise before each pass.
Definition xml.h:93
Immutable byte span expressed relative to the source.
Definition xml.h:44
Bounded, caller-owned, no-heap XML pull reader.
static ra8_err_t internal_pi(xml_reader_t *reader)
Validate and skip a PI or leading XML declaration.
static bool internal_name_start(uint8_t c)
Test a supported ASCII NCName start byte.
static bool internal_xml_target(const uint8_t *source, size_t start, size_t end)
Test for the reserved case-insensitive PI target XML.
static ra8_err_t internal_markup_end(const uint8_t *source, size_t length, size_t start, size_t *out_end)
Locate a markup closing byte while respecting quotes.
static ra8_err_t internal_end(xml_reader_t *reader, size_t end, xml_event_t *event)
Parse one close element and update nesting.
static bool internal_space(uint8_t c)
Test whether one byte is XML spacing.
static ra8_err_t internal_comment(xml_reader_t *reader)
Validate and skip one XML comment.
static ra8_err_t internal_attr_parse(const uint8_t *source, size_t source_len, uint32_t end, xml_attr_cursor_t *cursor, xml_attribute_t *out)
Parse one attribute at a bounded tag cursor.
static ra8_err_t internal_terminator(const uint8_t *source, size_t length, size_t start, const char *terminator, size_t *out_start)
Locate a literal terminator in a bounded source.
static ra8_err_t internal_start(xml_reader_t *reader, size_t end, xml_event_t *event)
Parse one start element and update nesting.
static bool internal_ascii_letter(uint8_t c)
Test whether one byte is an ASCII letter.
static bool internal_attr_duplicate(const uint8_t *source, size_t source_len, const xml_event_t *event, const xml_attribute_t *current, uint16_t prior_count)
Detect a duplicate attribute name.
static ra8_err_t internal_cdata(xml_reader_t *reader, xml_event_t *event)
Validate and emit one CDATA payload.
static bool internal_declaration_attr(const uint8_t *source, size_t source_len, const xml_attribute_t *attribute, uint16_t ordinal, bool *saw_encoding, bool *saw_standalone)
Validate one ordered XML-declaration pseudo-attribute.
static ra8_err_t internal_text(xml_reader_t *reader, xml_event_t *event)
Validate and emit one text run.
static ra8_err_t internal_attributes(const uint8_t *source, size_t source_len, xml_event_t *event)
Count and validate one start tag's attributes.
static bool internal_name_continue(uint8_t c)
Test a supported later ASCII NCName byte.
static ra8_err_t internal_special(xml_reader_t *reader, xml_event_t *event, bool *out_emitted)
Dispatch comment, CDATA, DOCTYPE, or processing instruction.
static ra8_err_t internal_declaration(xml_reader_t *reader, size_t target_end, size_t term)
Validate and skip the leading XML declaration.
static bool internal_encoding(const uint8_t *source, xml_span_t value)
Validate an XML declaration encoding name.