protected virtual void Visit(LogicExp logicExp)
        {
            var        leftExp         = logicExp.LeftNode;
            var        rightExp        = logicExp.RightNode;
            Expression leftExpression  = null;
            Expression rightExpression = null;

            if (leftExp is LogicExp)
            {
                Visit((LogicExp)leftExp);
            }
            else if (leftExp is ComparrisonExp)
            {
                Visit((ComparrisonExp)leftExp);
            }
            else
            {
                throw new Exception();
            }

            if (rightExp is LogicExp)
            {
                Visit((LogicExp)rightExp);
            }
            else if (rightExp is ComparrisonExp)
            {
                Visit((ComparrisonExp)rightExp);
            }
            else
            {
                throw new Exception();
            }
        }
Esempio n. 2
0
        protected virtual Expression Visit(LogicExp logicExp)
        {
            var        leftExp         = logicExp.LeftNode;
            var        rightExp        = logicExp.RightNode;
            Expression leftExpression  = null;
            Expression rightExpression = null;

            if (leftExp is LogicExp)
            {
                leftExpression = Visit((LogicExp)leftExp);
            }
            else if (leftExp is ComparrisonExp)
            {
                leftExpression = Visit((ComparrisonExp)leftExp);
            }
            else
            {
                throw new Exception();
            }

            if (rightExp is LogicExp)
            {
                rightExpression = Visit((LogicExp)rightExp);
            }
            else if (rightExp is ComparrisonExp)
            {
                rightExpression = Visit((ComparrisonExp)rightExp);
            }
            else
            {
                throw new Exception();
            }

            return(OpDic[logicExp.BaseToken.OpType](leftExpression, rightExpression));
        }
        protected override void Visit(LogicExp logicExp)
        {
            base.Visit(logicExp);
            var rightExp = temp.Pop();
            var leftExp  = temp.Pop();

            temp.Push(OpDic[logicExp.BaseToken.OpType](leftExp, rightExp));
        }