add nom error handling
This commit is contained in:
parent
c32da018ad
commit
cec4f5fb8d
|
@ -1,9 +1,5 @@
|
||||||
use std::fmt::Debug;
|
|
||||||
use std::ops::Deref;
|
|
||||||
|
|
||||||
use super::{IErr, Span};
|
use super::{IErr, Span};
|
||||||
use ariadne::{Label, Report, ReportKind};
|
use ariadne::{Label, Report, ReportKind};
|
||||||
use nom::error::ErrorKind;
|
|
||||||
use nom_greedyerror::{GreedyErrorKind, Position};
|
use nom_greedyerror::{GreedyErrorKind, Position};
|
||||||
|
|
||||||
fn span_to_range(input: Span) -> std::ops::Range<usize> {
|
fn span_to_range(input: Span) -> std::ops::Range<usize> {
|
||||||
|
@ -19,7 +15,8 @@ pub fn convert_error(input: Span, e: IErr<Span>) -> Report {
|
||||||
}
|
}
|
||||||
GreedyErrorKind::Char(c) => Label::new(err.0.position()..err.0.position())
|
GreedyErrorKind::Char(c) => Label::new(err.0.position()..err.0.position())
|
||||||
.with_message(format!("expected {c:?}")),
|
.with_message(format!("expected {c:?}")),
|
||||||
GreedyErrorKind::Nom(_) => todo!(),
|
GreedyErrorKind::Nom(kind) => Label::new(err.0.position()..err.0.position())
|
||||||
|
.with_message(format!("nom error {kind:?}")),
|
||||||
};
|
};
|
||||||
labels.push(label);
|
labels.push(label);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue