Mercurial Hosting > luan
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 {