aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs
index bcad011..92ce812 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -341,15 +341,29 @@ fn event_loop() {
// Enter
b'\r' => {
- let line = se.line.dump();
+ let line = se.line.into_bytes();
+
if !line.is_empty() {
+ let parsed = match parse::do_parse(&line) {
+ Ok(p) => p,
+ Err((crate::parse::ParseError::Eof, _)) => {
+ se.line.add(b'\n');
+ print!("\r\n> ");
+ continue
+ },
+ Err(e) => {
+ println!("{e:?}\n{}", se.prompt());
+ continue;
+ }
+ };
print!("\r\n");
let entry = HistoryEntry::new(line.clone());
history::persist(&entry);
se.history.push(entry);
se.history_visit = 0;
+ se.line.dump();
drop(se);
- run::run(session.clone(), line);
+ run::run(session.clone(), parsed);
}
}