forked from bonsai/harakit
		
	rpn(1): unicode subtraction, multiplication, division & code cleanup
This commit is contained in:
		
							parent
							
								
									b68f13acdc
								
							
						
					
					
						commit
						0d97f81f49
					
				
							
								
								
									
										26
									
								
								src/rpn.rs
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								src/rpn.rs
									
									
									
									
									
								
							@ -94,9 +94,9 @@ fn str_to_calc_type(string: &str) -> Option<CalcType> {
 | 
			
		||||
 | 
			
		||||
	match string {
 | 
			
		||||
		"+" => Some(Add),
 | 
			
		||||
		"-" => Some(Subtract),
 | 
			
		||||
		"*" => Some(Multiply),
 | 
			
		||||
		"/" => Some(Divide),
 | 
			
		||||
		"-" | "−" => Some(Subtract),
 | 
			
		||||
		"*" | "×" => Some(Multiply),
 | 
			
		||||
		"/" | "÷" => Some(Divide),
 | 
			
		||||
		"^" => Some(Power),
 | 
			
		||||
		"//" => Some(Floor),
 | 
			
		||||
		"%" => Some(Modulo),
 | 
			
		||||
@ -145,19 +145,19 @@ fn eval(
 | 
			
		||||
			},
 | 
			
		||||
			_ => {
 | 
			
		||||
				let (x, y) = (
 | 
			
		||||
					&stack.pop_back().unwrap(),
 | 
			
		||||
					&stack.pop_back().unwrap(),
 | 
			
		||||
					stack.pop_back().unwrap(),
 | 
			
		||||
					stack.pop_back().unwrap(),
 | 
			
		||||
				);
 | 
			
		||||
 | 
			
		||||
				match op {
 | 
			
		||||
					Add => &stack.push_back(y + x),
 | 
			
		||||
					Subtract => &stack.push_back(y - x),
 | 
			
		||||
					Multiply => &stack.push_back(y * x),
 | 
			
		||||
					Divide => &stack.push_back(y / x),
 | 
			
		||||
					Power => &stack.push_back(x.powf(*y)),
 | 
			
		||||
					Floor => &stack.push_back((y / x).floor()),
 | 
			
		||||
					Modulo => &stack.push_back(y % x),
 | 
			
		||||
					_ => &{},
 | 
			
		||||
					Add => stack.push_back(y + x),
 | 
			
		||||
					Subtract => stack.push_back(y - x),
 | 
			
		||||
					Multiply => stack.push_back(y * x),
 | 
			
		||||
					Divide => stack.push_back(y / x),
 | 
			
		||||
					Power => stack.push_back(x.powf(y)),
 | 
			
		||||
					Floor => stack.push_back((y / x).floor()),
 | 
			
		||||
					Modulo => stack.push_back(y % x),
 | 
			
		||||
					_ => {},
 | 
			
		||||
				};
 | 
			
		||||
			},
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user