ShaderTools.Hlsl.Compilation.SemanticModel.GetSymbol C# (CSharp) Method

GetSymbol() public method

public GetSymbol ( AttributeSyntax syntax ) : Symbol
syntax AttributeSyntax
return ShaderTools.Hlsl.Symbols.Symbol
        public Symbol GetSymbol(AttributeSyntax syntax)
        {
            var result = _bindingResult.GetBoundNode(syntax) as BoundAttribute;
            return result?.AttributeSymbol;
        }

Same methods

SemanticModel::GetSymbol ( BoundExpression expression ) : Symbol
SemanticModel::GetSymbol ( BoundFieldExpression expression ) : Symbol
SemanticModel::GetSymbol ( BoundFunctionInvocationExpression expression ) : Symbol
SemanticModel::GetSymbol ( BoundMethodInvocationExpression expression ) : Symbol
SemanticModel::GetSymbol ( BoundName expression ) : Symbol
SemanticModel::GetSymbol ( BoundNumericConstructorInvocationExpression expression ) : Symbol
SemanticModel::GetSymbol ( BoundType expression ) : Symbol
SemanticModel::GetSymbol ( BoundVariableExpression expression ) : Symbol
SemanticModel::GetSymbol ( ExpressionSyntax expression ) : Symbol
SemanticModel::GetSymbol ( IdentifierDeclarationNameSyntax syntax ) : Symbol
SemanticModel::GetSymbol ( SemanticSyntax syntax ) : Symbol

Usage Example

Exemplo n.º 1
0
 private static IEnumerable<SymbolSpan> GetSymbolSpans(SemanticModel semanticModel, SyntaxNode node)
 {
     switch (node.Kind)
     {
         case SyntaxKind.VariableDeclarator:
         {
             var expression = (VariableDeclaratorSyntax) node;
             var symbol = semanticModel.GetDeclaredSymbol(expression);
             if (symbol != null)
                 yield return SymbolSpan.CreateDefinition(symbol, expression.Identifier.SourceRange, expression.Identifier.Span);
             break;
         }
         case SyntaxKind.ClassType:
         {
             var expression = (ClassTypeSyntax) node;
             var symbol = semanticModel.GetDeclaredSymbol(expression);
             if (symbol != null)
                 yield return SymbolSpan.CreateDefinition(symbol, expression.Name.SourceRange, expression.Name.Span);
             break;
         }
         case SyntaxKind.StructType:
         {
             var expression = (StructTypeSyntax) node;
             var symbol = semanticModel.GetDeclaredSymbol(expression);
             if (symbol != null && expression.Name != null)
                 yield return SymbolSpan.CreateDefinition(symbol, expression.Name.SourceRange, expression.Name.Span);
             break;
         }
         case SyntaxKind.InterfaceType:
         {
             var expression = (InterfaceTypeSyntax) node;
             var symbol = semanticModel.GetDeclaredSymbol(expression);
             if (symbol != null)
                 yield return SymbolSpan.CreateDefinition(symbol, expression.Name.SourceRange, expression.Name.Span);
             break;
         }
         case SyntaxKind.IdentifierName:
         {
             var expression = (IdentifierNameSyntax) node;
             var symbol = semanticModel.GetSymbol(expression);
             if (symbol != null)
                 yield return SymbolSpan.CreateReference(symbol, expression.Name.SourceRange, expression.Name.Span);
             break;
         }
         case SyntaxKind.IdentifierDeclarationName:
         {
             var expression = (IdentifierDeclarationNameSyntax) node;
             var symbol = semanticModel.GetSymbol(expression);
             if (symbol != null)
                 yield return SymbolSpan.CreateDefinition(symbol, expression.Name.SourceRange, expression.Name.Span);
             break;
         }
         case SyntaxKind.FieldAccessExpression:
         {
             var expression = (FieldAccessExpressionSyntax) node;
             var symbol = semanticModel.GetSymbol(expression);
             if (symbol != null)
                 yield return SymbolSpan.CreateReference(symbol, expression.Name.SourceRange, expression.Name.Span);
             break;
         }
         case SyntaxKind.MethodInvocationExpression:
         {
             var expression = (MethodInvocationExpressionSyntax) node;
             var symbol = semanticModel.GetSymbol(expression);
             if (symbol != null)
                 yield return SymbolSpan.CreateReference(symbol, expression.Name.SourceRange, expression.Name.Span);
             break;
         }
         case SyntaxKind.FunctionInvocationExpression:
         {
             var expression = (FunctionInvocationExpressionSyntax) node;
             var symbol = semanticModel.GetSymbol(expression);
             if (symbol != null)
                 yield return SymbolSpan.CreateReference(symbol, 
                     expression.Name.GetUnqualifiedName().Name.SourceRange, 
                     expression.Name.GetUnqualifiedName().Name.Span);
             break;
         }
         case SyntaxKind.FunctionDefinition:
         {
             var expression = (FunctionDefinitionSyntax) node;
             var symbol = semanticModel.GetDeclaredSymbol(expression);
             if (symbol != null)
                 yield return SymbolSpan.CreateDefinition(symbol,
                     expression.Name.GetUnqualifiedName().Name.SourceRange,
                     expression.Name.GetUnqualifiedName().Name.Span);
             break;
         }
         case SyntaxKind.FunctionDeclaration:
         {
             var expression = (FunctionDeclarationSyntax) node;
             var symbol = semanticModel.GetDeclaredSymbol(expression);
             if (symbol != null)
                 yield return SymbolSpan.CreateDefinition(symbol,
                     expression.Name.GetUnqualifiedName().Name.SourceRange,
                     expression.Name.GetUnqualifiedName().Name.Span);
             break;
         }
     }
 }