skullbrain-parser 0.1.0

Parses skullbrain tokens into a concrete syntax tree (CST).
Documentation
use super::*;

impl<'input, D: Diagnostics, C: ConcreteSyntaxTreeBuilder> ParserState<'input, D, C> {
    pub(crate) fn parse_throw_error(&mut self) {
        self.start_node(SyntaxKind::ThrowError);
        let Some(item) = self.next() else {
            unreachable!()
        };

        self.token(SyntaxKind::Keyword, item);

        self.skip_trivia();
        self.parse_expression();

        self.finish_node();
    }
}

#[cfg(test)]
mod test {
    use crate::test::create_parsing_test;

    #[test]
    fn test_single_parameter() {
        create_parsing_test("throw/*.skull", |state| {
            state.parse_throw_error();
        });
    }
}