sandwich

A funny programming language written in Rust
git clone https://tilde.team/~karx/sandwich.git
Log | Files | Refs | README | LICENSE

commit 773c563f97578a86eb8e671fcfdb4f8e291b809c
parent 64c5958193816f12a089c0b04559bddb24ed8809
Author: ~karx <karx@tilde.team>
Date:   Sun,  7 Feb 2021 00:30:14 +0000

Add support for variables in math operations

Diffstat:
Msrc/eval.rs | 2+-
Msrc/main.rs | 8++++----
2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/eval.rs b/src/eval.rs @@ -1,4 +1,4 @@ -pub fn do_math(arguments: &str, operator: char) -> u32 { +pub fn do_math(arguments: String, operator: char) -> u32 { let split_args = arguments.split("-").collect::<Vec<&str>>(); let num1: u32 = match split_args[0].parse() { diff --git a/src/main.rs b/src/main.rs @@ -55,10 +55,10 @@ impl Program { match opcode { 'p' => println!("{}", self.args_or_vars(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, '/')), + '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), '/')), 'l' => self.add_var(arguments), _ => panic!("SyntaxError at opcode {}!", self.pc) }