Example #1
0
        public void RecursiveResolve(int level, bool impliedAtRoot, string classAlias, IASTNode parent)
        {
            IASTNode lhs       = GetFirstChild();
            int      nextLevel = level + 1;

            if (lhs != null)
            {
                FromReferenceNode n = ( FromReferenceNode )lhs;
                n.RecursiveResolve(nextLevel, impliedAtRoot, null, this);
            }

            ResolveFirstChild();
            bool impliedJoin = !(level == RootLevel && !impliedAtRoot);

            Resolve(true, impliedJoin, classAlias, parent);
        }
Example #2
0
        private FromElement EvaluateFromElementPath(string path, string classAlias)
        {
            FromReferenceNode pathNode = (FromReferenceNode)PathHelper.ParsePath(path, _fromClause.ASTFactory);

            pathNode.RecursiveResolve(FromReferenceNode.RootLevel, // This is the root level node.
                                      false,                       // Generate an explicit from clause at the root.
                                      classAlias,
                                      null
                                      );

            if (pathNode.GetImpliedJoin() != null)
            {
                return(pathNode.GetImpliedJoin());
            }
            else
            {
                return(pathNode.FromElement);
            }
        }