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);
 	}