Build paragraphs
This commit is contained in:
parent
7c166baee0
commit
12ead5b70f
34
src/main.rs
34
src/main.rs
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue