mirror of
https://tildegit.org/karx/sandwich.git
synced 2024-05-19 05:25:48 -05:00
Add support for functions and variables in if statements
This commit is contained in:
parent
37d0919655
commit
0fbdcdfec0
12
src/main.rs
12
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::<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),
|
||||
|
|
Loading…
Reference in a new issue