1mod compiler;
2mod dep;
3mod lexer;
4mod lowerer;
5mod tokenizer;
6mod validator;
7
8pub use compiler::*;
9pub use dep::*;
10pub use lexer::*;
11pub use lowerer::*;
12pub use tokenizer::*;
13pub use validator::*;
14
15use miette::Diagnostic;
16use thiserror::Error;
17
18#[derive(Debug, Error, Diagnostic)]
19pub enum Error {
20 #[error("An error occured!")]
21 #[diagnostic(code(dpscript::error::basic), url(docsrs))]
22 Basic(#[help] String),
23
24 #[error(transparent)]
25 #[diagnostic(transparent)]
26 Tokenizer(#[from] TokenizerError),
27
28 #[error(transparent)]
29 #[diagnostic(transparent)]
30 UnnamedTokenizer(#[from] UnnamedTokenizerError),
31
32 #[error(transparent)]
33 #[diagnostic(transparent)]
34 Lexer(#[from] LexerError),
35
36 #[error(transparent)]
37 #[diagnostic(transparent)]
38 UnnamedLexer(#[from] UnnamedLexerError),
39
40 #[error(transparent)]
41 #[diagnostic(transparent)]
42 Validator(#[from] ValidatorError),
43
44 #[error(transparent)]
45 #[diagnostic(transparent)]
46 DuoValidator(#[from] DuoValidatorError),
47
48 #[error(transparent)]
49 #[diagnostic(transparent)]
50 UnnamedValidator(#[from] UnnamedValidatorError),
51
52 #[error(transparent)]
53 #[diagnostic(transparent)]
54 UnnamedDuoValidator(#[from] UnnamedDuoValidatorError),
55
56 #[error(transparent)]
57 #[diagnostic(transparent)]
58 UnsourcedValidator(#[from] UnsourcedValidatorError),
59
60 #[error(transparent)]
61 #[diagnostic(transparent)]
62 Lowerer(#[from] LowererError),
63
64 #[error(transparent)]
65 #[diagnostic(transparent)]
66 UnnamedLowerer(#[from] UnnamedLowererError),
67
68 #[error(transparent)]
69 #[diagnostic(transparent)]
70 Compiler(#[from] CompilerError),
71
72 #[error(transparent)]
73 #[diagnostic(transparent)]
74 UnnamedCompiler(#[from] UnnamedCompilerError),
75
76 #[error(transparent)]
77 #[diagnostic(transparent)]
78 UnsourcedCompiler(#[from] UnsourcedCompilerError),
79
80 #[error(transparent)]
81 #[diagnostic(transparent)]
82 Dependency(#[from] DependencyError),
83
84 #[error(transparent)]
85 Io(#[from] std::io::Error),
86
87 #[error(transparent)]
88 Ron(#[from] ron::Error),
89
90 #[error(transparent)]
91 Toml(#[from] toml::de::Error),
92
93 #[error(transparent)]
94 Json5(#[from] json5::Error),
95
96 #[error(transparent)]
97 Json(#[from] serde_json::Error),
98}