Add ability for reading variables
This commit is contained in:
parent
4f8b004183
commit
64c5958193
18
src/main.rs
18
src/main.rs
|
@ -9,7 +9,7 @@ mod eval;
|
||||||
struct Program {
|
struct Program {
|
||||||
data: Vec<String>,
|
data: Vec<String>,
|
||||||
pc: usize,
|
pc: usize,
|
||||||
vars: HashMap<char, String>
|
vars: HashMap<char, char>
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Program {
|
impl Program {
|
||||||
|
@ -32,22 +32,21 @@ impl Program {
|
||||||
let mut deconstructed: Vec<char> = arguments.chars().collect();
|
let mut deconstructed: Vec<char> = arguments.chars().collect();
|
||||||
|
|
||||||
for (index, char) in arguments.chars().enumerate() {
|
for (index, char) in arguments.chars().enumerate() {
|
||||||
if char == 'e' {
|
let value = self.vars.get(&char);
|
||||||
deconstructed[index] = 'f';
|
|
||||||
|
match value {
|
||||||
|
Some(content) => deconstructed[index] = *content,
|
||||||
|
None => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
println!("{:?}", self.vars);
|
|
||||||
deconstructed.into_iter().collect()
|
deconstructed.into_iter().collect()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn add_var(&mut self, arguments: &str) {
|
fn add_var(&mut self, arguments: &str) {
|
||||||
let name = arguments.chars().collect::<Vec<char>>()[0];
|
let argument_vec: Vec<char> = arguments.chars().collect();
|
||||||
let old_value = &arguments[1..];
|
|
||||||
|
|
||||||
let value = old_value.to_owned();
|
self.vars.insert(argument_vec[0], argument_vec[1]);
|
||||||
|
|
||||||
self.vars.insert(name, value);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn eval(&mut self, instruction: &String) {
|
fn eval(&mut self, instruction: &String) {
|
||||||
|
@ -84,7 +83,6 @@ impl fmt::Display for Program {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
|
||||||
let args: Vec<String> = env::args().collect();
|
let args: Vec<String> = env::args().collect();
|
||||||
if args.len() == 1 {
|
if args.len() == 1 {
|
||||||
panic!("You must provide an argument!");
|
panic!("You must provide an argument!");
|
||||||
|
|
Loading…
Reference in New Issue