diff options
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 18 |
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); } } |
