Compare commits
2 Commits
39f5acd6ab
...
dcef0a3943
Author | SHA1 | Date |
---|---|---|
~karx | dcef0a3943 | |
~karx | 285ff4c8c6 |
25
src/eval.rs
25
src/eval.rs
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue