Mercurial Hosting > luan
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); }