sandwich

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

commit 630e38cfda1daf78dae464d75d01a87fb0a80a4e
parent 0355142103f573d22b1796f048958f06c3af70a0
Author: ~karx <karx@tilde.team>
Date:   Mon,  8 Feb 2021 15:45:13 +0000

Implement "marker cleaning"

Diffstat:
Msrc/main.rs | 11++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/main.rs b/src/main.rs @@ -75,7 +75,8 @@ impl Program { fn add_var(&mut self, arguments: &str) { let argument_vec: Vec<char> = arguments.chars().collect(); let name = argument_vec[0]; - let value: String = argument_vec[1..].into_iter().collect(); + let mut value: String = argument_vec[1..].into_iter().collect(); + value = self.args_or_funcs(&value); self.vars.insert(name, value); } @@ -86,8 +87,6 @@ impl Program { let body: String = argument_vec[1..].into_iter().collect(); self.funcs.insert(name, body); - - println!("{:?}", self.funcs); } fn parse_funcs(&mut self, instruction: &String) -> u32 { @@ -114,6 +113,12 @@ impl Program { let current_char = argument_vec[index]; let str_to_push: String; + if index > 0 { + if argument_vec[index-1] == '*' { + continue; + } + } + if current_char == '*' { let func_name = argument_vec[index+1]; let body: String;