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 }