1use std::io::stdin;
2use std::io::stdout;
3use std::io::BufRead;
4use std::io::Write;
5use trivet::{numbers::NumberParser, parse_from_string};
6
7pub fn main() {
8 println!("Enter a number to see how Trivet parses it. Enter a blank line to stop.");
9 let numpar = NumberParser::new();
10 print!("> ");
11 let _ = stdout().flush();
12 for line in stdin().lock().lines() {
13 if line.is_err() {
14 break;
15 }
16 let line = line.unwrap();
17
18 let mut parser = parse_from_string(&line);
20 parser.consume_ws();
21 if parser.is_at_eof() {
22 break;
23 }
24
25 let parts = numpar.get_parts(parser.borrow_core());
27 println!("{:?}", parts);
28 if parts.is_apparent_float() {
29 let value: f64 = parts.into();
30 println!("f64: {}", value);
31 } else {
32 let value: i128 = parts.into();
33 println!("i128: {}", value);
34 }
35
36 print!("> ");
38 let _ = stdout().flush();
39 }
40}