447    {
  448        ExpressionNode expressionNode = null;
  449        while (true)
  450        {
  452            if (operatorInfo._priority < pri)
  453            {
  454                break;
  455            }
  457            switch (operatorInfo._type)
  458            {
  459            default:
  460                return;
  461            case Nodes.Binop:
  462            {
  463                ExpressionNode right = 
NodePop();
 
  464                ExpressionNode expressionNode2 = 
NodePop();
 
  465                switch (operatorInfo._op)
  466                {
  467                case 4:
  468                case 6:
  469                case 22:
  470                case 23:
  471                case 24:
  472                case 25:
  473                    throw ExprException.UnsupportedOperator(operatorInfo._op);
  474                default:
  475                    expressionNode = ((operatorInfo._op != 14) ? 
new BinaryNode(
_table, operatorInfo._op, expressionNode2, right) : 
new LikeNode(
_table, operatorInfo._op, expressionNode2, right));
 
  476                    break;
  477                }
  478                break;
  479            }
  480            case Nodes.Unop:
  481            {
  482                ExpressionNode expressionNode2 = null;
  483                ExpressionNode right = 
NodePop();
 
  484                int op = operatorInfo._op;
  485                if (op != 1 && op != 3 && op == 25)
  486                {
  487                    throw ExprException.UnsupportedOperator(operatorInfo._op);
  488                }
  489                expressionNode = 
new UnaryNode(
_table, operatorInfo._op, right);
 
  490                break;
  491            }
  492            case Nodes.Zop:
  493                expressionNode = new ZeroOpNode(operatorInfo._op);
  494                break;
  495            case Nodes.UnopSpec:
  496            case Nodes.BinopSpec:
  497                return;
  498            }
  500        }
  501    }
readonly DataTable _table
 
void NodePush(ExpressionNode node)