weavatrix_parse/protobuf/
mod.rs1use crate::contract_tokens::ContractTokens;
4use crate::facts::{Contract, ContractKind, Facts, Import, ParseDiagnostic, Span};
5use crate::syntax::Language;
6use crate::token::TokenKind;
7
8#[must_use]
9pub fn extract(source: &str) -> Facts {
10 Parser::new(source).parse()
11}
12
13struct Parser<'source> {
14 tokens: ContractTokens<'source>,
15 package: String,
16 message_scopes: Vec<(usize, String)>,
17 facts: Facts,
18}
19
20mod parser;
21
22#[cfg(test)]
23mod tests;