From 0fbdcdfec0388bc05ab5459d139594ab63c7c6e4 Mon Sep 17 00:00:00 2001 From: ~karx Date: Thu, 8 Apr 2021 15:41:38 -0500 Subject: [PATCH] Add support for functions and variables in if statements --- src/main.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main.rs b/src/main.rs index a2b36e1..aefc1d9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -236,15 +236,15 @@ impl Program { fn parse(&mut self, instruction: &String) { // Opcode is the first character, arguments are everything after the first char let opcode = instruction.chars().collect::>()[0]; - let arguments = eval::args_or_comments(&instruction[1..]); if opcode != '#' { + let arguments = self.args_or_funcs(&self.args_or_vars(&eval::args_or_comments(&instruction[1..]))); match opcode { - 'p' => println!("{}", self.args_or_funcs(&self.args_or_vars(&arguments))), - 'a' => println!("{}", eval::do_math(self.args_or_vars(&arguments), '+')), - 's' => println!("{}", eval::do_math(self.args_or_vars(&arguments), '-')), - 'm' => println!("{}", eval::do_math(self.args_or_vars(&arguments), '*')), - 'd' => println!("{}", eval::do_math(self.args_or_vars(&arguments), '/')), + 'p' => println!("{}", arguments), + 'a' => println!("{}", eval::do_math(arguments, '+')), + 's' => println!("{}", eval::do_math(arguments, '-')), + 'm' => println!("{}", eval::do_math(arguments, '*')), + 'd' => println!("{}", eval::do_math(arguments, '/')), 'l' => self.add_var(&arguments), 'f' => self.add_func(&arguments), 'i' => self.run_external(arguments),