1 module orelang.operator.SubOperator; 2 import orelang.operator.IOperator, 3 orelang.Engine, 4 orelang.Value; 5 6 class SubOperator : IOperator { 7 /** 8 * call 9 */ 10 public Value call(Engine engine, Value[] args) { 11 Value ret = engine.eval(args[0]); 12 13 if (args.length == 1) { 14 ret.mulTo(new Value(-1)); 15 } 16 17 foreach (arg; args[1..$]) { 18 Value v = engine.eval(arg); 19 ret.subTo(v); 20 } 21 22 return ret; 23 } 24 }