28typedef enum : uint32_t {
96 const char* search_key,
98 uint32_t* out_start_row,
99 uint32_t* out_start_col,
100 uint32_t* out_end_row,
101 uint32_t* out_end_col);
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.
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.