Meilleur contrôle de l'exécution du programme
La commande en cours d'écriture n'est pas envoyée au parser si EOF est envoyé
This commit is contained in:
parent
4c70fda118
commit
50c6647ad4
1 changed files with 11 additions and 7 deletions
18
src/main.rs
18
src/main.rs
|
@ -5,9 +5,10 @@ mod parser;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let mut buffer = String::new();
|
let mut buffer = String::new();
|
||||||
let mut result_bytes_read: io::Result<usize> = Ok(1);
|
let mut result_bytes_read: io::Result<usize>;
|
||||||
|
let mut bytes_read: usize = 1;
|
||||||
|
|
||||||
while result_bytes_read.unwrap() != 0 {
|
while bytes_read != 0 {
|
||||||
buffer.clear();
|
buffer.clear();
|
||||||
|
|
||||||
print!("$ ");
|
print!("$ ");
|
||||||
|
@ -16,12 +17,15 @@ fn main() {
|
||||||
}
|
}
|
||||||
result_bytes_read = io::stdin().read_line(&mut buffer);
|
result_bytes_read = io::stdin().read_line(&mut buffer);
|
||||||
|
|
||||||
if !result_bytes_read.is_err() {
|
if result_bytes_read.is_err() {
|
||||||
let command_vec: Vec<String> = parser::parse(&buffer);
|
|
||||||
println!("{:?}", command_vec);
|
|
||||||
} else {
|
|
||||||
eprintln!("error: invalid UTF-8 characters were read");
|
eprintln!("error: invalid UTF-8 characters were read");
|
||||||
result_bytes_read = Ok(1);
|
bytes_read = 1;
|
||||||
|
} else {
|
||||||
|
bytes_read = result_bytes_read.unwrap();
|
||||||
|
if bytes_read != 0 {
|
||||||
|
let command_vec: Vec<String> = parser::parse(&buffer);
|
||||||
|
println!("{:?}", command_vec);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue