Mercurial Hosting > luan
diff core/src/luan/impl/LuanParser.java @ 191:2456ef7ada02
minor
git-svn-id: https://luan-java.googlecode.com/svn/trunk@192 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Tue, 01 Jul 2014 06:40:48 +0000 |
parents | 04b86428dc50 |
children | 66ed8886abc0 |
line wrap: on
line diff
--- a/core/src/luan/impl/LuanParser.java Thu Jun 26 18:20:54 2014 +0000 +++ b/core/src/luan/impl/LuanParser.java Tue Jul 01 06:40:48 2014 +0000 @@ -600,7 +600,8 @@ if( exp==null ) return parser.failure(null); while( Keyword("or",in) ) { - exp = new OrExpr( se(start), expr(exp), required(expr(AndExpr(in))) ); + Expressions exp2 = AndExpr(in); + exp = new OrExpr( se(start), expr(exp), required(expr(exp2)) ); } return parser.success(exp); } @@ -611,7 +612,8 @@ if( exp==null ) return parser.failure(null); while( Keyword("and",in) ) { - exp = new AndExpr( se(start), expr(exp), required(expr(RelExpr(in))) ); + Expressions exp2 = RelExpr(in); + exp = new AndExpr( se(start), expr(exp), required(expr(exp2)) ); } return parser.success(exp); } @@ -624,22 +626,28 @@ while(true) { if( parser.match("==") ) { Spaces(in); - exp = new EqExpr( se(start), expr(exp), required(expr(ConcatExpr(in))) ); + Expressions exp2 = ConcatExpr(in); + exp = new EqExpr( se(start), expr(exp), required(expr(exp2)) ); } else if( parser.match("~=") ) { Spaces(in); - exp = new NotExpr( se(start), new EqExpr( se(start), expr(exp), required(expr(ConcatExpr(in))) ) ); + Expressions exp2 = ConcatExpr(in); + exp = new NotExpr( se(start), new EqExpr( se(start), expr(exp), required(expr(exp2)) ) ); } else if( parser.match("<=") ) { Spaces(in); - exp = new LeExpr( se(start), expr(exp), required(expr(ConcatExpr(in))) ); + Expressions exp2 = ConcatExpr(in); + exp = new LeExpr( se(start), expr(exp), required(expr(exp2)) ); } else if( parser.match(">=") ) { Spaces(in); - exp = new LeExpr( se(start), required(expr(ConcatExpr(in))), expr(exp) ); + Expressions exp2 = ConcatExpr(in); + exp = new LeExpr( se(start), required(expr(exp2)), expr(exp) ); } else if( parser.match("<") ) { Spaces(in); - exp = new LtExpr( se(start), expr(exp), required(expr(ConcatExpr(in))) ); + Expressions exp2 = ConcatExpr(in); + exp = new LtExpr( se(start), expr(exp), required(expr(exp2)) ); } else if( parser.match(">") ) { Spaces(in); - exp = new LtExpr( se(start), required(expr(ConcatExpr(in))), expr(exp) ); + Expressions exp2 = ConcatExpr(in); + exp = new LtExpr( se(start), required(expr(exp2)), expr(exp) ); } else break; } @@ -653,7 +661,8 @@ return parser.failure(null); if( parser.match("..") ) { Spaces(in); - exp = new ConcatExpr( se(start), expr(exp), required(expr(ConcatExpr(in))) ); + Expressions exp2 = ConcatExpr(in); + exp = new ConcatExpr( se(start), expr(exp), required(expr(exp2)) ); } return parser.success(exp); } @@ -666,10 +675,12 @@ while(true) { if( parser.match('+') ) { Spaces(in); - exp = new AddExpr( se(start), expr(exp), required(expr(TermExpr(in))) ); + Expressions exp2 = TermExpr(in); + exp = new AddExpr( se(start), expr(exp), required(expr(exp2)) ); } else if( Minus() ) { Spaces(in); - exp = new SubExpr( se(start), expr(exp), required(expr(TermExpr(in))) ); + Expressions exp2 = TermExpr(in); + exp = new SubExpr( se(start), expr(exp), required(expr(exp2)) ); } else break; } @@ -689,13 +700,16 @@ while(true) { if( parser.match('*') ) { Spaces(in); - exp = new MulExpr( se(start), expr(exp), required(expr(UnaryExpr(in))) ); + Expressions exp2 = UnaryExpr(in); + exp = new MulExpr( se(start), expr(exp), required(expr(exp2)) ); } else if( parser.match('/') ) { Spaces(in); - exp = new DivExpr( se(start), expr(exp), required(expr(UnaryExpr(in))) ); + Expressions exp2 = UnaryExpr(in); + exp = new DivExpr( se(start), expr(exp), required(expr(exp2)) ); } else if( Mod() ) { Spaces(in); - exp = new ModExpr( se(start), expr(exp), required(expr(UnaryExpr(in))) ); + Expressions exp2 = UnaryExpr(in); + exp = new ModExpr( se(start), expr(exp), required(expr(exp2)) ); } else break; } @@ -711,15 +725,18 @@ int start = parser.begin(); if( parser.match('#') ) { Spaces(in); - return parser.success( new LenExpr( se(start), required(expr(UnaryExpr(in))) ) ); + Expressions exp = UnaryExpr(in); + return parser.success( new LenExpr( se(start), required(expr(exp)) ) ); } if( Minus() ) { Spaces(in); - return parser.success( new UnmExpr( se(start), required(expr(UnaryExpr(in))) ) ); + Expressions exp = UnaryExpr(in); + return parser.success( new UnmExpr( se(start), required(expr(exp)) ) ); } if( Keyword("not",in) ) { Spaces(in); - return parser.success( new NotExpr( se(start), required(expr(UnaryExpr(in))) ) ); + Expressions exp = UnaryExpr(in); + return parser.success( new NotExpr( se(start), required(expr(exp)) ) ); } Expressions exp = PowExpr(in); if( exp==null ) @@ -734,7 +751,8 @@ return parser.failure(null); if( parser.match('^') ) { Spaces(in); - exp = new ConcatExpr( se(start), expr(exp), required(expr(PowExpr(in))) ); + Expressions exp2 = PowExpr(in); + exp = new ConcatExpr( se(start), expr(exp), required(expr(exp2)) ); } return parser.success(exp); }