summaryrefslogtreecommitdiff
path: root/src/macro_processor
diff options
context:
space:
mode:
Diffstat (limited to 'src/macro_processor')
-rw-r--r--src/macro_processor/error.rs8
-rw-r--r--src/macro_processor/macro_processor.rs4
2 files changed, 11 insertions, 1 deletions
diff --git a/src/macro_processor/error.rs b/src/macro_processor/error.rs
index 074a8ef..cd94c4d 100644
--- a/src/macro_processor/error.rs
+++ b/src/macro_processor/error.rs
@@ -5,6 +5,7 @@ use std::fmt;
pub enum SMPError {
IncludeError(u8, std::io::Error, String),
ShellCommandError(u8, Box<dyn Error>),
+ UnknownError(u8, Option<Box<dyn Error>>),
}
impl fmt::Display for SMPError {
@@ -16,6 +17,13 @@ impl fmt::Display for SMPError {
SMPError::ShellCommandError(code, e) => {
write!(f, "[SMP{}] Error running shell command \"{:#?}\"", code, e)
}
+ SMPError::UnknownError(code, e) => {
+ write!(
+ f,
+ "[SMP{}] Unknown macro processing error occurred \"{:#?}\"",
+ code, e
+ )
+ }
}
}
}
diff --git a/src/macro_processor/macro_processor.rs b/src/macro_processor/macro_processor.rs
index 82a94ef..68347d0 100644
--- a/src/macro_processor/macro_processor.rs
+++ b/src/macro_processor/macro_processor.rs
@@ -193,6 +193,7 @@ fn smp_builtin_expr(
}
/// Types of macros, this is to make it easy to store both functions and strings
+#[derive(Clone)]
pub enum MacroType {
/// When expanded, the associated function will be expanded
Function(
@@ -217,9 +218,10 @@ enum ParserState {
/// Defines a MacroProcessor object, with it's associated state
/// the state mostly includes the defined macros
+#[derive(Clone)]
pub struct MacroProcessor {
/// All currently defined macros in this MacroProcessor
- macros: HashMap<String, MacroType>,
+ pub macros: HashMap<String, MacroType>,
}
impl MacroProcessor {