sandwich

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

eval.rs (989B)


      1 pub fn do_math(arguments: String, operator: char) -> u32 {
      2     let split_args = arguments.split("-").collect::<Vec<&str>>();
      3 
      4     let num1: u32 = match split_args[0].parse() {
      5         Ok(num) => num,
      6         Err(_e) => panic!("ArgumentError: Not a number: {}", split_args[0]),
      7     };
      8 
      9     let num2: u32 = match split_args[1].parse() {
     10         Ok(num) => num,
     11         Err(_e) => panic!("ArgumentError: Not a number: {}", split_args[1]),
     12     };
     13 
     14     match operator {
     15         '+' => num1 + num2,
     16         '-' => num1 - num2,
     17         '*' => num1 * num2,
     18         '/' => num1 / num2,
     19         _ => panic!("SyntaxError: Unknown operator {}", operator),
     20     }
     21 }
     22 
     23 pub fn args_or_comments(arguments: &str) -> String {
     24     let argument_vec: Vec<char> = arguments.chars().collect();
     25     let mut builder: String = String::from("");
     26 
     27     for char in argument_vec {
     28         if char == '#' {
     29             break;
     30         } else {
     31             builder.push_str(&char.to_string());
     32         }
     33     }
     34 
     35     builder
     36 }