ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
alphabet_soup.h
Go to the documentation of this file.
1
18
19#pragma once
20
21#include <stddef.h>
22#include <stdint.h>
23
24#include "ra8_err.h"
25#include "ra8_io_stream.h"
26
38
45
55
70[[nodiscard]] ra8_err_t soup_init(soup_context_t* ctx);
71
95[[nodiscard]] bool soup_find_word(const soup_grid_t* grid,
96 const char* search_key,
97 uint32_t key_len,
98 uint32_t* out_start_row,
99 uint32_t* out_start_col,
100 uint32_t* out_end_row,
101 uint32_t* out_end_col);
102
125[[nodiscard]] ra8_err_t
126soup_solve(soup_context_t* ctx, const char* text, uint32_t text_len, ra8_io_stream_t* out_stream);
ra8_err_t soup_init(soup_context_t *ctx)
Initialize a caller-owned puzzle solver context.
bool soup_find_word(const soup_grid_t *grid, const char *search_key, uint32_t key_len, uint32_t *out_start_row, uint32_t *out_start_col, uint32_t *out_end_row, uint32_t *out_end_col)
Search a grid for a normalized word along all 8 compass directions.
soup_limits_t
Fixed sizing and bounds for Alphabet Soup word search solver.
@ k_soup_max_line_steps
Upper bound on line parse iterations.
@ k_soup_max_grid_rows
Maximum board row dimension.
@ k_soup_max_parse_steps
Upper bound on file parse iterations.
@ k_soup_max_dim_digits
Maximum digits in dimension specifier.
@ k_soup_max_word_chars
Maximum characters per target word.
@ k_soup_max_grid_cols
Maximum board column dimension.
@ k_soup_max_file_capacity
Maximum supported puzzle file size.
@ k_soup_direction_count
8-way directional navigation rays.
ra8_err_t soup_solve(soup_context_t *ctx, const char *text, uint32_t text_len, ra8_io_stream_t *out_stream)
Parse board and words from puzzle text and emit solutions to the output stream.
Error Code Definitions for ra8-firmware.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Definition ra8_err.h:546
ra8_io targetable byte-stream facade – one writer, many destinations.
Caller-allocated byte-stream handle binding a sink to its context.
Caller-owned bounded workspace for puzzle solving (zero-heap).
soup_grid_t grid
Board grid storage.
char word_buffer[k_soup_max_word_chars]
Current word buffer.
char search_key_buffer[k_soup_max_word_chars]
Normalized key buffer.
In-memory word search board matrix.
char cells[k_soup_max_grid_rows][k_soup_max_grid_cols]
Character grid storage.
uint32_t row_count
Active row dimension.
uint32_t col_count
Active column dimension.