System\Xml\XPath\Internal\QueryBuilder.cs (44)
56private Query ProcessAxis(Axis root, Flags flags, out Props props) {
77props = Props.None;
80if ((props & Props.NonFlat) != 0) {
83props |= Props.NonFlat;
95props = Props.None;
102props |= Props.NonFlat;
106props |= Props.NonFlat;
109if ((props & Props.NonFlat) != 0) {
123if ((props & Props.NonFlat) != 0) {
127props |= Props.NonFlat;
134if ((props & Props.NonFlat) != 0) {
138props |= Props.NonFlat;
142props |= Props.NonFlat;
146props |= Props.NonFlat;
150if ((props & Props.NonFlat) != 0) {
184private Query ProcessFilter(Filter root, Flags flags, out Props props) {
187Props propsCond;
192(propsCond & (Props.HasPosition | Props.HasLast)) != 0
194propsCond |= Props.HasPosition;
211props &= ~Props.PosFilter;
213if ((propsCond & Props.HasPosition) != 0) {
215props |= Props.PosFilter;
220if (qyFilter != null && (propsCond & Props.HasPosition) == 0 && qyFilter.Condition.StaticType != XPathResultType.Any) {
230if ((props & Props.PosFilter) != 0 && qyInput is DocumentOrderQuery) {
239if ((propsCond & Props.HasPosition) != 0) {
242} else if ((propsCond & Props.HasLast) != 0) {
248if (merge && (props & Props.PosFilter) != 0) {
261return new FilterQuery(qyInput, cond, /*noPosition:*/(propsCond & Props.HasPosition) == 0);
264private Query ProcessOperator(Operator root, out Props props) {
265Props props1, props2;
287props |= Props.NonFlat;
301private Query ProcessFunction(Function root, out Props props) {
302props = Props.None;
307props |= Props.HasLast;
311props |= Props.HasPosition;
319props |= Props.NonFlat;
372props |= Props.NonFlat;
379List<Query> ProcessArguments(ArrayList args, out Props props) {
382props = Props.None;
384Props argProps;
394private Query ProcessNode(AstNode root, Flags flags, out Props props) {
402props = Props.None;
438Props props;