Skip to main content

litex/parse/
parse_prove_stmt.rs

1use crate::prelude::*;
2
3impl Runtime {
4    pub fn parse_prove_stmt(&mut self, tb: &mut TokenBlock) -> Result<Stmt, RuntimeError> {
5        tb.skip_token(PROVE)?;
6        tb.skip_token(COLON)?;
7        let result = self.run_in_local_parsing_time_name_scope(|this| {
8            let mut proof = Vec::with_capacity(tb.body.len());
9            for block in tb.body.iter_mut() {
10                proof.push(this.parse_stmt(block)?);
11            }
12            Ok(proof)
13        });
14        match result {
15            Ok(proof) => Ok(ProveStmt::new(proof, tb.line_file.clone()).into()),
16            Err(e) => Err(e),
17        }
18    }
19}