Skip to content

vihaco_syntax::parse

parse

vihaco_syntax::parse

chumsky-0.10 combinators for the parsed-syntax shape.

`Parse` impls for `ParsedModule`/`ParsedFunction` are generic over the consumer’s instruction type `I`, source type `Ty`, and device-header type `H`.

functionblock_i64_flatsource

vihaco_syntax::parse::block_i64_flat

Signature
pub fn block_i64_flat<'src>() -> impl Parser<'src, &'src str, Vec<i64>, Err<Simple<'src, char>>> + Clone

Returns

impl Parser<'src, &'src str, Vec<i64>, Err<Simple<'src, char>>> + Clone

Block-body helper: parse a sequence of whitespace-separated `i64`s as flat rows between an outer `{` … `}` provided by the caller. The body itself is a sequence of `i64`s with any whitespace (including newlines) between them.

Real usage: `device slm.filling { 0 1 2 3 };`.

source

functionblock_i64_pairssource

vihaco_syntax::parse::block_i64_pairs

Signature
pub fn block_i64_pairs<'src>() -> impl Parser<'src, &'src str, Vec<(i64, i64)>, Err<Simple<'src, char>>> + Clone

Returns

impl Parser<'src, &'src str, Vec<(i64, i64)>, Err<Simple<'src, char>>> + Clone

Block-body helper: parse rows of `i64 i64` pairs separated by whitespace. Within a row the two ints are whitespace-separated; rows themselves are also just whitespace-separated (newlines or other ws — the helper doesn’t require row alignment).

Real usage: `device slm.traps { 1 1\n 5 1\n … };`, `device camera.detect_sites { … };`.

source

functionskipsource

vihaco_syntax::parse::skip

Signature
pub fn skip<'src>() -> impl Parser<'src, &'src str, (), Err<Simple<'src, char>>> + Clone

Returns

impl Parser<'src, &'src str, (), Err<Simple<'src, char>>> + Clone

Whitespace and `//`-to-end-of-line comments. Zero-or-more.

source

functionstring_literalsource

vihaco_syntax::parse::string_literal

Signature
pub fn string_literal<'src>() -> impl Parser<'src, &'src str, QuotedString, Err<Simple<'src, char>>> + Clone

Returns

impl Parser<'src, &'src str, QuotedString, Err<Simple<'src, char>>> + Clone

`”…”` with `\\`, `\”`, `\n`, `\t`, `\r` escape sequences.

source

functionsymbol_refsource

vihaco_syntax::parse::symbol_ref

Signature
pub fn symbol_ref<'src>() -> impl Parser<'src, &'src str, Ident, Err<Simple<'src, char>>> + Clone

Returns

impl Parser<'src, &'src str, Ident, Err<Simple<'src, char>>> + Clone

`@name` — leading `@` consumed; name is `ident()`-shaped.

source