New parser #2

Merged
ThePerfectComputer merged 51 commits from new_parser into main 2022-08-01 21:00:00 +00:00
Showing only changes of commit de08a60f17 - Show all commits

View file

@ -45,36 +45,29 @@ fn main() -> std::io::Result<()> {
let file = File::open(&args.path)?;
let mut reader = io::BufReader::new(file);
let mut buffer = Vec::<u8>::new();
let mut buffer = String::new();
let mut word_count = 0u64;
let mut do_break = false;
let line_chunk_size = 25;
// while {
// let bytes_read = reader.read_until(b' ', &mut buffer).unwrap();
// bytes_read > 0
// } {
// word_count += 1;
while {!do_break} {
for _ in 0..line_chunk_size {
let bytes_read = reader.read_line(&mut buffer).unwrap();
if bytes_read == 0 {
do_break = true;
break
}
}
let words = buffer.split_ascii_whitespace();
for word in words {
word_count += 1;
}
// if word_count < 5 {
// let string = std::str::from_utf8(&buffer).unwrap();
// dbg!(string);
// }
// buffer.clear();
// }
loop {
buffer.clear();
let t = reader
.by_ref()
.bytes()
.map(|c| c.unwrap())
.take_while(|c|
c != &b' ' &&
c != &b'\n');
buffer.extend(t);
word_count += 1;
}
let string = std::str::from_utf8(&buffer).unwrap();
dbg!(string);
dbg!(word_count);
Ok(())