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;