Add support for functions and variables in if statements
continuous-integration/drone/push Build is passing Details

This commit is contained in:
~karx 2021-04-08 15:41:38 -05:00
parent 37d0919655
commit 0fbdcdfec0
No known key found for this signature in database
GPG Key ID: A794DA2529474BA5
1 changed files with 6 additions and 6 deletions

View File

@ -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::<Vec<char>>()[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),