use thiserror::Error; use super::CodePos; #[derive(Error, Debug)] pub enum LexerError { #[error("Unexpected character '{c}' at {code_pos}.")] UnexpectedCharacter { c: char, code_pos: CodePos }, #[error("Unterminated string literal starting at {code_pos}.")] UnterminatedStringLiteral { code_pos: CodePos }, #[error("Unterminated block comment starting at {code_pos}.")] UnterminatedBlockComment { code_pos: CodePos }, #[error("Invalid number literal {lexeme} at {code_pos}: {msg}")] InvalidNumberLiteral { lexeme: String, msg: String, code_pos: CodePos, }, }