コード例 #1
0
        private IReadOnlyCollection <BooleanExpressionToken> ReduceParenTokens(IReadOnlyCollection <BooleanExpressionToken> tokens)
        {
            var cursor = new BooleanExpressionTokenReaderCursor {
                Tokens = tokens.ToList()
            };

            List <BooleanExpressionToken> allTokens = new List <BooleanExpressionToken>();

            while (cursor.Read(out var token))
            {
                if (token is OpenParenToken)
                {
                    var innerTokens     = ReadUntilClosingParen(cursor);
                    var parenExpression = new BooleanParenExpression {
                        InnerExpression = new BooleanExpressionTokenReader().CreateBooleanExpressionFromTokens(innerTokens)
                    };

                    var reduced = new ReducedToken {
                        ReducedExpression = parenExpression
                    };
                    allTokens.Add(reduced);
                }
                else
                {
                    allTokens.Add(token);
                }
            }
            return(allTokens);
        }
コード例 #2
0
 private bool EvaluateParenExpression(BooleanParenExpression parenExpresion)
 {
     return(Evaluate(parenExpresion.InnerExpression));
 }