patch_prolog_frontend/
parse_error.rs1use crate::tokenizer::Token;
8use plg_shared::Span;
9
10#[derive(Debug, Clone, PartialEq)]
11pub struct ParseError {
12 pub message: String,
13 pub span: Span,
14}
15
16impl ParseError {
17 pub fn new(message: impl Into<String>, span: Span) -> Self {
18 Self {
19 message: message.into(),
20 span,
21 }
22 }
23
24 pub fn at(message: impl Into<String>, tok: &Token) -> Self {
26 Self::new(message, Span::new(0, tok.lo, tok.hi))
27 }
28}
29
30impl std::fmt::Display for ParseError {
31 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
34 f.write_str(&self.message)
35 }
36}