Beispiel #1
0
        ConditionExpression ParseRelationalExpression()
        {
            ConditionExpression e = ParseFactorExpression();

            Token            opToken;
            RelationOperator op;

            if (tokenizer.IsToken(TokenType.Less) ||
                tokenizer.IsToken(TokenType.Greater) ||
                tokenizer.IsToken(TokenType.Equal) ||
                tokenizer.IsToken(TokenType.NotEqual) ||
                tokenizer.IsToken(TokenType.LessOrEqual) ||
                tokenizer.IsToken(TokenType.GreaterOrEqual))
            {
                opToken = tokenizer.Token;
                tokenizer.GetNextToken();

                switch (opToken.Type)
                {
                case TokenType.Equal:
                    op = RelationOperator.Equal;
                    break;

                case TokenType.NotEqual:
                    op = RelationOperator.NotEqual;
                    break;

                case TokenType.Less:
                    op = RelationOperator.Less;
                    break;

                case TokenType.LessOrEqual:
                    op = RelationOperator.LessOrEqual;
                    break;

                case TokenType.Greater:
                    op = RelationOperator.Greater;
                    break;

                case TokenType.GreaterOrEqual:
                    op = RelationOperator.GreaterOrEqual;
                    break;

                default:
                    throw new ExpressionParseException(String.Format("Wrong relation operator {0}", opToken.Value));
                }

                e = new ConditionRelationalExpression(e, ParseFactorExpression(), op);
            }

            return(e);
        }
		ConditionExpression ParseRelationalExpression ()
		{
			ConditionExpression e = ParseFactorExpression ();
			
			Token opToken;
			RelationOperator op;
			
			if (tokenizer.IsToken (TokenType.Less) ||
				tokenizer.IsToken (TokenType.Greater) ||
				tokenizer.IsToken (TokenType.Equal) ||
				tokenizer.IsToken (TokenType.NotEqual) ||
				tokenizer.IsToken (TokenType.LessOrEqual) ||
				tokenizer.IsToken (TokenType.GreaterOrEqual)) {
				
				opToken = tokenizer.Token;
				tokenizer.GetNextToken ();
								
				switch (opToken.Type) {
				case TokenType.Equal:
					op = RelationOperator.Equal;
					break;
				case TokenType.NotEqual:
					op = RelationOperator.NotEqual;
					break;
				case TokenType.Less:
					op = RelationOperator.Less;
					break;
				case TokenType.LessOrEqual:
					op = RelationOperator.LessOrEqual;
					break;
				case TokenType.Greater:
					op = RelationOperator.Greater;
					break;
				case TokenType.GreaterOrEqual:
					op = RelationOperator.GreaterOrEqual;
					break;
				default:
					throw new ExpressionParseException (String.Format ("Wrong relation operator {0}", opToken.Value));
				}

				e =  new ConditionRelationalExpression (e, ParseFactorExpression (), op);
			}
			
			return e;
		}