Esempio n. 1
0
        private ConditionExpression ParseLiteralExpression()
        {
            if (_tokenizer.IsToken(ConditionTokenType.LeftParen))
            {
                _tokenizer.GetNextToken();
                ConditionExpression e = ParseExpression();
                _tokenizer.Expect(ConditionTokenType.RightParen);
                return(e);
            }

            if (_tokenizer.IsToken(ConditionTokenType.Minus))
            {
                _tokenizer.GetNextToken();
                if (!_tokenizer.IsNumber())
                {
                    throw new ConditionParseException($"Number expected, got {_tokenizer.TokenType}");
                }

                return(ParseNumber(true));
            }

            if (_tokenizer.IsNumber())
            {
                return(ParseNumber(false));
            }

            if (_tokenizer.TokenType == ConditionTokenType.String)
            {
                var simpleLayout = new SimpleLayout(_tokenizer.StringTokenValue, _configurationItemFactory);
                _tokenizer.GetNextToken();
                if (simpleLayout.IsFixedText)
                {
                    return(new ConditionLiteralExpression(simpleLayout.FixedText, simpleLayout.ToString()));
                }
                else
                {
                    return(new ConditionLayoutExpression(simpleLayout));
                }
            }

            if (_tokenizer.TokenType == ConditionTokenType.Keyword)
            {
                string keyword = _tokenizer.EatKeyword();

                if (TryPlainKeywordToExpression(keyword, out var expression))
                {
                    return(expression);
                }

                if (_tokenizer.TokenType == ConditionTokenType.LeftParen)
                {
                    _tokenizer.GetNextToken();

                    ConditionMethodExpression predicateExpression = ParsePredicate(keyword);
                    return(predicateExpression);
                }
            }

            throw new ConditionParseException("Unexpected token: " + _tokenizer.TokenValue);
        }
Esempio n. 2
0
        public void SimpleLayoutToStringTest()
        {
            var l = new SimpleLayout("xx${level}yy");
            Assert.Equal("'xx${level}yy'", l.ToString());

            var l2 = new SimpleLayout(new LayoutRenderer[0], "someFakeText", ConfigurationItemFactory.Default);
            Assert.Equal("'someFakeText'", l2.ToString());
        }
Esempio n. 3
0
 /// <summary>
 /// Returns a string representation of this expression.
 /// </summary>
 /// <returns>String literal in single quotes.</returns>
 public override string ToString()
 {
     return(_simpleLayout.ToString());
 }
 /// <summary>
 /// Returns a string representation of this expression.
 /// </summary>
 /// <returns>String literal in single quotes.</returns>
 public override string ToString()
 {
     return($"'{_simpleLayout.ToString()}'");
 }