Mercurial Hosting > luan
comparison core/src/luan/impl/UnmExpr.java @ 647:8e8c30b72e9b
move methods from LuanState to Luan
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 29 Mar 2016 20:39:14 -0600 |
parents | cdc70de628b5 |
children |
comparison
equal
deleted
inserted
replaced
646:cdc70de628b5 | 647:8e8c30b72e9b |
---|---|
16 @Override public Object eval(LuanStateImpl luan) throws LuanException { | 16 @Override public Object eval(LuanStateImpl luan) throws LuanException { |
17 Object o = op.eval(luan); | 17 Object o = op.eval(luan); |
18 if( o instanceof Number ) | 18 if( o instanceof Number ) |
19 return -((Number)o).doubleValue(); | 19 return -((Number)o).doubleValue(); |
20 if( o instanceof LuanTable ) { | 20 if( o instanceof LuanTable ) { |
21 LuanFunction fn = luan.getHandlerFunction("__unm",(LuanTable)o); | 21 LuanFunction fn = Luan.getHandlerFunction("__unm",(LuanTable)o); |
22 if( fn != null ) { | 22 if( fn != null ) { |
23 return Luan.first(fn.call(luan,new Object[]{o})); | 23 return Luan.first(fn.call(luan,new Object[]{o})); |
24 } | 24 } |
25 } | 25 } |
26 throw new LuanException("attempt to perform arithmetic on a "+Luan.type(o)+" value"); | 26 throw new LuanException("attempt to perform arithmetic on a "+Luan.type(o)+" value"); |