1use thiserror::Error;
2use tree_sitter::Range;
3
4#[derive(Debug, Error)]
5pub enum ParseError {
6 #[error("tree-sitter failed to initialize the bash language")]
7 LanguageInit,
8
9 #[error("tree-sitter returned no parse tree")]
10 NoTree,
11
12 #[error("unknown node kind `{kind}` at {range:?}")]
13 UnknownNode { kind: String, range: Range },
14
15 #[error("expected field `{field}` on `{parent_kind}` at {range:?}")]
16 MissingField {
17 parent_kind: String,
18 field: &'static str,
19 range: Range,
20 },
21
22 #[error("source contains a syntax error at {range:?}")]
23 SyntaxError { range: Range },
24}