diff src/luan/interp/LuanParser.java @ 139:3b384dc5ca91

replace WebShell.java with web_shell.luan git-svn-id: https://luan-java.googlecode.com/svn/trunk@140 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Fri, 13 Jun 2014 12:26:44 +0000
parents 573ce091ae00
children dfd0f33b584e
line wrap: on
line diff
--- a/src/luan/interp/LuanParser.java	Thu Jun 12 08:20:48 2014 +0000
+++ b/src/luan/interp/LuanParser.java	Fri Jun 13 12:26:44 2014 +0000
@@ -423,7 +423,7 @@
 		parser.begin();
 		List<String> names = NameList(in);
 		if( names==null )
-			parser.exception("Name expected");
+			throw parser.exception("Name expected");
 		return parser.success(names);
 	}
 
@@ -433,13 +433,23 @@
 			return null;
 		List<String> names = new ArrayList<String>();
 		names.add(name);
-		while( parser.match( ',' ) ) {
-			Spaces(in);
-			names.add( RequiredName(in) );
+		while( (name=anotherName(in)) != null ) {
+			names.add(name);
 		}
 		return names;
 	}
 
+	private String anotherName(In in) throws ParseException {
+		parser.begin();
+		if( !parser.match( ',' ) )
+			return parser.failure(null);
+		Spaces(in);
+		String name = Name(in);
+		if( name==null )
+			return parser.failure(null);
+		return parser.success(name);
+	}
+
 	private Stmt WhileStmt() throws ParseException {
 		parser.begin();
 		if( !Keyword("while",In.NOTHING) )
@@ -1004,7 +1014,7 @@
 		parser.begin();
 		String name = Name(in);
 		if( name==null )
-			parser.exception("Name expected");
+			throw parser.exception("Name expected");
 		return parser.success(name);
 	}