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 input::Input;
|
||||||
use lexer::Lexer;
|
use lexer::Lexer;
|
||||||
use models::Token;
|
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let mut stdin = std::io::stdin().lock();
|
let mut stdin = std::io::stdin().lock();
|
||||||
let input = Input::new(&mut stdin);
|
let input = Input::new(&mut stdin);
|
||||||
let lexer = Lexer::new(input);
|
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 {
|
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