diff --git a/src/main.rs b/src/main.rs index c981173..a29c779 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,18 @@ -use std::env; +use std::{ + env, + io::{self, Read}, +}; mod parse; fn main() { - println!("{:.3}", parse::parse(env::args().nth(1).unwrap().as_ref())); + let input = match env::args().nth(1) { + Some(s) => s, + None => { + let mut buf = String::new(); + io::stdin().read_to_string(&mut buf).unwrap(); + buf + } + }; + println!("{:.3}", parse::parse(&input)); } diff --git a/src/parse.rs b/src/parse.rs index 7ca7aa4..7141938 100644 --- a/src/parse.rs +++ b/src/parse.rs @@ -77,7 +77,7 @@ fn nodes_from_str(s: &str) -> Result, Error> { let mut nodes = Vec::new(); let mut state = ParsingState::default(); - let is_ignored_char = |c: &char| !matches!(c, ' ' | '&'); + let is_ignored_char = |c: &char| !matches!(c, ' ' | '&' | '\n'); let filtered_string: String = s.chars().filter(is_ignored_char).collect();