#[macro_use]
pub mod macros;
pub mod parse_error;
pub mod pest_converter;
pub mod renderer;
pub mod context;
pub mod conversions;
pub mod formatting;
pub mod impls;
pub mod suggestions;
pub mod types;
pub use parse_error::{
ErrorSeverity, ExpectedToken, Highlight, HighlightStyle, IdentifierContext,
MissingComponentKind, NumberError, ParseErrorKind, RelatedInfo, SourceContext, SourceLine,
StringDelimiter, StructuredParseError, Suggestion, SuggestionConfidence, TextEdit,
TokenCategory, TokenInfo, TokenKind,
};
pub use renderer::{CliErrorRenderer, CliRendererConfig, ErrorRenderer};
pub use types::{ErrorCode, ErrorNote, ShapeError, SourceLocation};
pub use context::{ErrorContext, Result, ResultExt, span_to_location};
#[macro_export]
macro_rules! parse_error {
($msg:expr) => {
$crate::error::ShapeError::ParseError {
message: $msg.to_string(),
location: None,
}
};
($msg:expr, $loc:expr) => {
$crate::error::ShapeError::ParseError {
message: $msg.to_string(),
location: Some($loc),
}
};
}
#[macro_export]
macro_rules! runtime_error {
($msg:expr) => {
$crate::error::ShapeError::RuntimeError {
message: $msg.to_string(),
location: None,
}
};
($msg:expr, $loc:expr) => {
$crate::error::ShapeError::RuntimeError {
message: $msg.to_string(),
location: Some($loc),
}
};
}
#[macro_export]
macro_rules! semantic_error {
($msg:expr) => {
$crate::error::ShapeError::SemanticError {
message: $msg.to_string(),
location: None,
}
};
($msg:expr, $loc:expr) => {
$crate::error::ShapeError::SemanticError {
message: $msg.to_string(),
location: Some($loc),
}
};
}