Exemplo n.º 1
0
 private Doc PrintPointerTypeSyntax(PointerTypeSyntax node)
 {
     return(Concat(
                this.Print(node.ElementType),
                this.PrintSyntaxToken(node.AsteriskToken)
                ));
 }
Exemplo n.º 2
0
        public override void VisitPointerType(PointerTypeSyntax node)
        {
            Information.Add(InfoExtractor.Info.TYPE, node);

            node.ElementType?.Accept(this);

            base.VisitPointerType(node);
        }
Exemplo n.º 3
0
        public override void VisitPointerType(PointerTypeSyntax node)
        {
            if (!PreVisit(node))
            {
                return;
            }

            node.ElementType?.Accept(this);

            base.VisitPointerType(node);

            PostVisit(node);
        }
Exemplo n.º 4
0
 public TypeStructure ConvertTypeStructure(TypeSyntax syntax)
 {
     return(syntax switch
     {
         PredefinedTypeSyntax ptSyntax => ToPredefinedIdentifierStructure(ptSyntax.Keyword.Text),
         IdentifierNameSyntax inSyntax => ToIdentifierStructure(inSyntax, _typeLocator),
         QualifiedNameSyntax qnSyntax => ToIdentifierStructure(qnSyntax),
         GenericNameSyntax gnSyntax => ToGenericTypeStructure(gnSyntax),
         ArrayTypeSyntax atSyntax => ToArrayTypeStructure(atSyntax),
         PointerTypeSyntax ptSyntax => ToPointerTypeStructure(ptSyntax),
         NullableTypeSyntax ntSyntax => ToNullableTypeStructure(ntSyntax),
         TupleTypeSyntax ttSyntax => ToTupleTypeStructure(ttSyntax),
         _ => throw new ArgumentException(syntax.GetType().ToString())
     });
Exemplo n.º 5
0
        public static TRoot ReplaceAndTrackType <TRoot>(this TRoot node, TypeSyntax targetType, SyntaxNode sourceType, SemanticModel semanticModel, ICollection <INamedTypeSymbol> discoveredTypes)
            where TRoot : SyntaxNode
        {
            // Skip immediately for function pointers
            if (sourceType is FunctionPointerTypeSyntax)
            {
                return(node.ReplaceNode(targetType, ParseTypeName("void*")));
            }

            // Handle the various possible type kinds
            ITypeSymbol typeSymbol = sourceType switch
            {
                RefTypeSyntax refType => semanticModel.GetTypeInfo(refType.Type).Type !,
                PointerTypeSyntax pointerType => semanticModel.GetTypeInfo(pointerType.ElementType).Type !,
                _ => semanticModel.GetTypeInfo(sourceType).Type !
            };

            // Do nothing if the type is just void
            if (typeSymbol.SpecialType == SpecialType.System_Void)
            {
                return(node);
            }

            string typeName = typeSymbol.ToDisplayString(ISymbolExtensions.FullyQualifiedWithoutGlobalFormat);

            discoveredTypes.Add((INamedTypeSymbol)typeSymbol);

            if (HlslKnownTypes.TryGetMappedName(typeName, out string?mappedName))
            {
                TypeSyntax newType = ParseTypeName(mappedName !);

                return(node.ReplaceNode(targetType, newType));
            }

            return(node.ReplaceNode(targetType, ParseTypeName(typeName.Replace(".", "__"))));
        }
Exemplo n.º 6
0
 public override void VisitPointerType(PointerTypeSyntax node)
 {
     throw new NotImplementedException();
 }
    /// <inheritdoc/>
    public override SyntaxNode?VisitPointerType(PointerTypeSyntax node)
    {
        Diagnostics.Add(PointerType, node);

        return(base.VisitPointerType(node));
    }
 public override SyntaxNode VisitPointerType(PointerTypeSyntax node) => ProcessTypeSyntax(node);
Exemplo n.º 9
0
 // 指针类型
 public virtual void VisitPointerTypeSyntax(PointerTypeSyntax value)
 {
     DefaultVisit(value);
 }
Exemplo n.º 10
0
 public override SyntaxNode VisitPointerType(PointerTypeSyntax node)
 {
     node = (PointerTypeSyntax)base.VisitPointerType(node);
     Classes.Add(node);
     return(node);
 }
Exemplo n.º 11
0
        public override Evaluation VisitPointerType(PointerTypeSyntax node)
        {
            node.ElementType?.Accept <Evaluation>(this);

            return(base.VisitPointerType(node));
        }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="node"></param>
 public override sealed void VisitPointerType(PointerTypeSyntax node)
 {
     this.OnNodeVisited(node, this.type.IsInstanceOfType(node));
     base.VisitPointerType(node);
 }
Exemplo n.º 13
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="node"></param>
 public override sealed void VisitPointerType(PointerTypeSyntax node)
 {
     this.OnNodeVisited(node);
     if (!this.traverseRootOnly) base.VisitPointerType(node);
 }
 public TamePointerTypeSyntax(PointerTypeSyntax node)
 {
     Node = node;
     AddChildren();
 }
Exemplo n.º 15
0
 public static Doc Print(PointerTypeSyntax node)
 {
     return(Doc.Concat(Node.Print(node.ElementType), Token.Print(node.AsteriskToken)));
 }
        /// <inheritdoc/>
        public override SyntaxNode?VisitPointerType(PointerTypeSyntax node)
        {
            Context.ReportDiagnostic(PointerType, node);

            return(base.VisitPointerType(node));
        }
Exemplo n.º 17
0
 public override void VisitPointerType(PointerTypeSyntax node)
 {
     ContainsUnsafe = true;
 }
Exemplo n.º 18
0
 public PointerNativeTypeAssignmentRewriter(string nativeIdentifier, PointerTypeSyntax nativeType)
 {
     _nativeIdentifier = nativeIdentifier;
     _nativeType       = nativeType;
 }
 public PointerTypeTranslation(PointerTypeSyntax syntax, SyntaxTranslation parent) : base(syntax, parent)
 {
 }
Exemplo n.º 20
0
 public override void VisitPointerType(PointerTypeSyntax node)
 {
     _seenConstructed = true;
     Visit(node.ElementType);
 }
 //
 // Summary:
 //     Called when the visitor visits a PointerTypeSyntax node.
 public virtual void VisitPointerType(PointerTypeSyntax node);
 public override void VisitPointerType(PointerTypeSyntax node)
 {
     base.VisitPointerType(node);
     MarkUnsafe();
 }
 public override void VisitPointerType(PointerTypeSyntax node)
 {
     base.VisitPointerType(node);
     MarkUnsafe();
 }
 public override void VisitPointerType(PointerTypeSyntax node)
 {
     this.seenConstructed = true;
     Visit(node.ElementType);
 }
Exemplo n.º 25
0
        public override Ust VisitPointerType(PointerTypeSyntax node)
        {
            var result = ConvertType(base.Visit(node.ElementType));

            return(result);
        }
Exemplo n.º 26
0
 public override void VisitPointerType(PointerTypeSyntax node)
 {
 }
Exemplo n.º 27
0
 public override void VisitPointerType(PointerTypeSyntax node)
 {
     Log(node, "Unsupported Syntax !");
 }
 public override Expr VisitPointerType(PointerTypeSyntax node)
 {
     return(base.VisitPointerType(node));
 }
        public PointerTypeTranslation(PointerTypeSyntax syntax, SyntaxTranslation parent) : base(syntax, parent)
        {

        }