Build paragraphs

This commit is contained in:
Alex Kotov 2023-04-02 15:30:06 +04:00
parent 7c166baee0
commit 12ead5b70f
Signed by: kotovalexarian
GPG Key ID: 553C0EBBEB5D5F08
1 changed files with 31 additions and 3 deletions

View File

@ -5,14 +5,42 @@ mod tokenizer;
use input::Input;
use lexer::Lexer;
use models::Token;
fn main() {
let mut stdin = std::io::stdin().lock();
let input = Input::new(&mut stdin);
let lexer = Lexer::new(input);
let tokens: Vec<Token> = lexer.map(|result| result.unwrap()).collect();
let tokens = lexer.map(|result| result.unwrap());
let mut paragraphs: Vec<String> = Vec::new();
let mut paragraph = String::new();
for token in tokens {
println!("{:?}", token);
if let Some(chr) = token.value.chars().next() {
match chr {
'\n' => {
if token.value.len() == 1 {
paragraph.push(' ');
} else {
if !paragraph.is_empty() {
paragraphs.push(paragraph.trim().to_string());
}
paragraph = String::new();
}
}
' ' => {
paragraph.push(' ');
}
_ => {
paragraph.push_str(&token.value);
}
}
}
}
if !paragraph.is_empty() {
paragraphs.push(paragraph.trim().to_string());
}
println!("{:#?}", paragraphs);
}