示例#1
0
        private BoundRelation BindTableReferenceInternal(TableReferenceSyntax node)
        {
            switch (node.Kind)
            {
            case SyntaxKind.ParenthesizedTableReference:
                return(BindParenthesizedTableReference((ParenthesizedTableReferenceSyntax)node));

            case SyntaxKind.NamedTableReference:
                return(BindNamedTableReference((NamedTableReferenceSyntax)node));

            case SyntaxKind.CrossJoinedTableReference:
                return(BindCrossJoinedTableReference((CrossJoinedTableReferenceSyntax)node));

            case SyntaxKind.InnerJoinedTableReference:
                return(BindInnerJoinedTableReference((InnerJoinedTableReferenceSyntax)node));

            case SyntaxKind.OuterJoinedTableReference:
                return(BindOuterJoinedTableReference((OuterJoinedTableReferenceSyntax)node));

            case SyntaxKind.DerivedTableReference:
                return(BindDerivedTableReference((DerivedTableReferenceSyntax)node));

            default:
                throw ExceptionBuilder.UnexpectedValue(node.Kind);
            }
        }
示例#2
0
        public IEnumerable <TableInstanceSymbol> GetDeclaredSymbols(TableReferenceSyntax tableReference)
        {
            if (tableReference == null)
            {
                throw new ArgumentNullException(nameof(tableReference));
            }

            var result = _bindingResult.GetBoundNode(tableReference) as BoundRelation;

            return(result?.GetDeclaredTableInstances().AsEnumerable());
        }
示例#3
0
 private BoundRelation BindTableReference(TableReferenceSyntax node)
 {
     return(Bind(node, BindTableReferenceInternal));
 }