Mercurial Hosting > luan
diff src/luan/impl/LuanImpl.java @ 1089:894786a03d22
check for too many arguments
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 29 Dec 2016 21:26:45 -0700 |
parents | 1a68fc55a80c |
children | ba4daf107e07 |
line wrap: on
line diff
--- a/src/luan/impl/LuanImpl.java Mon Dec 26 22:29:36 2016 -0700 +++ b/src/luan/impl/LuanImpl.java Thu Dec 29 21:26:45 2016 -0700 @@ -174,9 +174,22 @@ if( !(o instanceof Object[]) ) return null; Object[] a = (Object[])o; + return pick(a,i); + } + + public static Object pick(Object[] a,int i) { return i<a.length ? a[i] : null; } + public static void noMore(final Object[] a,final int n) throws LuanException { + if( a.length > n ) { + for( int i=n; i<a.length; i++ ) { + if( a[i] != null ) + throw new LuanException("too many arguments"); + } + } + } + public static Object[] varArgs(Object[] a,int i) { if( i >= a.length ) return LuanFunction.NOTHING;