From 192769c8ad655ee89730acb65fa22f2056236137 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Thu, 14 May 2026 20:51:43 +0200 Subject: [PATCH] Separate error --- parser/src/error.rs | 18 ++++++++++++++++++ parser/src/lib.rs | 20 +++----------------- 2 files changed, 21 insertions(+), 17 deletions(-) create mode 100644 parser/src/error.rs diff --git a/parser/src/error.rs b/parser/src/error.rs new file mode 100644 index 0000000..5b12dc7 --- /dev/null +++ b/parser/src/error.rs @@ -0,0 +1,18 @@ +use crate::Rule; + +pub type ParseResult<'a, T> = Result>; + +#[derive(Debug, Clone)] +pub enum ParseError<'a> { + PreAst(pest::error::Error), + Ast { + span: pest::Span<'a>, + error_code: ErrorCode, + error_message: String, + }, +} + +#[derive(Debug, Clone)] +pub enum ErrorCode { + InvalidStatement = 200, +} diff --git a/parser/src/lib.rs b/parser/src/lib.rs index d85211d..03e9347 100644 --- a/parser/src/lib.rs +++ b/parser/src/lib.rs @@ -2,30 +2,16 @@ use pest::Parser; use pest_derive::Parser; pub mod ast; +pub mod error; use ast::*; +use crate::error::{ErrorCode, ParseError, ParseResult}; + #[derive(Parser)] #[grammar = "./src/grammar.pest"] pub struct MistParser; -#[derive(Debug, Clone)] -pub enum ParseError<'a> { - PreAst(pest::error::Error), - Ast { - span: pest::Span<'a>, - error_code: ErrorCode, - error_message: String, - }, -} - -type ParseResult<'a, T> = Result>; - -#[derive(Debug, Clone)] -pub enum ErrorCode { - InvalidStatement = 200, -} - pub fn parse<'a>(source: &'a str) -> ParseResult<'a, Vec> { let mut pairs = MistParser::parse(Rule::program, source)?;