Compare commits

...

2 Commits

Author SHA1 Message Date
~karx dcef0a3943
Show prompt on same line 2021-04-07 17:02:39 -05:00
~karx 285ff4c8c6
Create basic input grabber 2021-04-07 17:01:32 -05:00
2 changed files with 26 additions and 0 deletions

View File

@ -1,3 +1,6 @@
use std::io;
use std::io::Write;
pub fn do_math(arguments: String, operator: char) -> u32 {
let split_args = arguments.split("-").collect::<Vec<&str>>();
@ -33,4 +36,26 @@ pub fn args_or_comments(arguments: &str) -> String {
}
builder
}
pub fn read_stdin(prompt: &str) -> String {
print!("{}", prompt);
io::stdout().flush().unwrap();
let mut result = String::new();
io::stdin().read_line(&mut result).expect("Expected a string!");
result.trim().to_string()
}
pub fn inp_or_normal(value: &str) -> String {
let value_vec: Vec<char> = value.chars().collect();
if value_vec[0] == '<' {
let prompt: String = value_vec[1..].into_iter().collect();
return read_stdin(&prompt);
} else {
return value.to_string();
}
}

View File

@ -77,6 +77,7 @@ impl Program {
let name = argument_vec[0];
let mut value: String = argument_vec[1..].into_iter().collect();
value = self.args_or_funcs(&value);
value = eval::inp_or_normal(&value);
self.vars.insert(name, value);
}