diff src/luan/interp/LuanParser.java @ 159:0abc9181061a

revert rev 154 but only allow FnCall, AndExpr, or OrExpr in ExpressionsStmt git-svn-id: https://luan-java.googlecode.com/svn/trunk@160 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Thu, 19 Jun 2014 04:40:12 +0000
parents cced1c4d3575
children 94bbc4cbc106
line wrap: on
line diff
--- a/src/luan/interp/LuanParser.java	Wed Jun 18 21:49:06 2014 +0000
+++ b/src/luan/interp/LuanParser.java	Thu Jun 19 04:40:12 2014 +0000
@@ -257,7 +257,7 @@
 			|| (stmt=RepeatStmt()) != null
 			|| (stmt=IfStmt()) != null
 			|| (stmt=SetStmt()) != null
-			|| (stmt=FnCallStmt()) != null
+			|| (stmt=ExpressionsStmt()) != null
 		) {
 			stmts.add(stmt);
 		}
@@ -272,7 +272,7 @@
 		fnExp = new IndexExpr( se(start), fnExp, new ConstExpr("stdout") );
 		fnExp = new IndexExpr( se(start), fnExp, new ConstExpr("write") );
 		FnCall fnCall = new FnCall( se(start), fnExp, exp );
-		return new FnCallStmt(fnCall);
+		return new ExpressionsStmt(fnCall);
 	}
 
 	private Expressions TemplateExpressions(In in) throws ParseException {
@@ -543,13 +543,12 @@
 		return parser.success( new SetStmt( vars.toArray(new Settable[0]), values ) );
 	}
 
-	private Stmt FnCallStmt() throws ParseException {
+	private Stmt ExpressionsStmt() throws ParseException {
 		parser.begin();
-		Expressions exp = VarExp(In.NOTHING);
-		if( !(exp instanceof FnCall) )
-			return parser.failure(null);
-		FnCall fnCall = (FnCall)exp;
-		return parser.success( new FnCallStmt(fnCall) );
+		Expressions exp = Expr(In.NOTHING);
+		if( exp instanceof FnCall || exp instanceof AndExpr || exp instanceof OrExpr )
+			return parser.success( new ExpressionsStmt(exp) );
+		return parser.failure(null);
 	}
 
 	private Settable SettableVar() throws ParseException {