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_flat¶source
vihaco_syntax::parse::block_i64_flat
Signature
pub fn block_i64_flat<'src>() -> impl Parser<'src, &'src str, Vec<i64>, Err<Simple<'src, char>>> + CloneReturns
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 };`.
sourcefunctionblock_i64_pairs¶source
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>>> + CloneReturns
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 { … };`.
sourcefunctionskip¶source
vihaco_syntax::parse::skip
Signature
pub fn skip<'src>() -> impl Parser<'src, &'src str, (), Err<Simple<'src, char>>> + CloneReturns
impl Parser<'src, &'src str, (), Err<Simple<'src, char>>> + Clone
Whitespace and `//`-to-end-of-line comments. Zero-or-more.
sourcefunctionstring_literal¶source
vihaco_syntax::parse::string_literal
Signature
pub fn string_literal<'src>() -> impl Parser<'src, &'src str, QuotedString, Err<Simple<'src, char>>> + CloneReturns
impl Parser<'src, &'src str, QuotedString, Err<Simple<'src, char>>> + Clone
`”…”` with `\\`, `\”`, `\n`, `\t`, `\r` escape sequences.
sourcefunctionsymbol_ref¶source
vihaco_syntax::parse::symbol_ref
Signature
pub fn symbol_ref<'src>() -> impl Parser<'src, &'src str, Ident, Err<Simple<'src, char>>> + CloneReturns
impl Parser<'src, &'src str, Ident, Err<Simple<'src, char>>> + Clone
`@name` — leading `@` consumed; name is `ident()`-shaped.
source