summaryrefslogtreecommitdiff
path: root/parser/src/error.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-02-09 18:32:24 +0800
committer魏曹先生 <1992414357@qq.com>2026-02-09 18:32:24 +0800
commit204bb6824bf3555b80ca574ca3edb8ea007c89dd (patch)
tree9a50b67ff64b2d1fe918e4bfa5034ac8389668e3 /parser/src/error.rs
parent12d08d599a41b15e0a20113d1a521c8c3a232e79 (diff)
Add file inclusion and text formatting to parser
Diffstat (limited to 'parser/src/error.rs')
-rw-r--r--parser/src/error.rs12
1 files changed, 11 insertions, 1 deletions
diff --git a/parser/src/error.rs b/parser/src/error.rs
index ca68442..b9ac888 100644
--- a/parser/src/error.rs
+++ b/parser/src/error.rs
@@ -1,4 +1,4 @@
-use std::{i64, process::exit};
+use std::{i64, path::PathBuf, process::exit};
use colored::Colorize;
use unicode_width::UnicodeWidthStr;
@@ -14,6 +14,8 @@ pub enum Exit {
begin: i64,
end: i64,
},
+ DuplicateMarker(String),
+ CycleDependency(PathBuf),
}
impl From<std::io::Error> for Exit {
@@ -35,6 +37,14 @@ pub fn handle_exit(e: Exit) {
} => {
print_syntax_error(content, reason, line, begin, end);
}
+ Exit::DuplicateMarker(marker) => {
+ eprintln!("Duplicate marker `{}` found!", marker);
+ exit(1)
+ }
+ Exit::CycleDependency(dialog) => {
+ eprintln!("Dialog `{}` depends on itself!", dialog.display());
+ exit(1)
+ }
}
}