From 031edfb7abc290b03cc1678ec3524fe404e3eab5 Mon Sep 17 00:00:00 2001 From: "zik.saleeba" Date: Tue, 14 Apr 2009 23:44:49 +0000 Subject: [PATCH] Problem with ending expressions fixed in new expression system. Problem with handling ternary operators in case values fixed (those colons are tricky). git-svn-id: http://picoc.googlecode.com/svn/trunk@233 21eae674-98b7-11dd-bd71-f92a316d2d60 --- expression.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/expression.c b/expression.c index dff2b63..1698005 100644 --- a/expression.c +++ b/expression.c @@ -1090,8 +1090,13 @@ int ExpressionParse(struct ParseState *Parser, struct Value **Result) { struct ParseState PreState = *Parser; enum LexToken Token = LexGetToken(Parser, &LexValue, TRUE); - if ((int)Token > TokenComma && (int)Token <= (int)TokenCloseBracket && (Token != TokenColon || TernaryDepth != 0)) + if ( ( ( (int)Token > TokenComma && (int)Token <= (int)TokenOpenBracket) || + (Token == TokenCloseBracket && BracketPrecedence != 0)) && + (Token != TokenColon || TernaryDepth != 0) ) { + if (Token == TokenColon) + printf("It's a colon\n"); + /* it's an operator with precedence */ if (PrefixState) {