public static void AppendSymbol(this ICollection<SymbolMarkupToken> markup, Symbol symbol) { switch (symbol.Kind) { case SymbolKind.Array: break; case SymbolKind.Field: markup.AppendFieldSymbolInfo((FieldSymbol) symbol); break; case SymbolKind.Function: markup.AppendFunctionSymbolInfo((FunctionSymbol) symbol); break; case SymbolKind.Variable: markup.AppendVariableSymbolInfo((VariableSymbol) symbol); break; case SymbolKind.Parameter: markup.AppendParameterSymbolInfo((ParameterSymbol) symbol, true); break; case SymbolKind.Indexer: break; case SymbolKind.IntrinsicScalarType: case SymbolKind.IntrinsicVectorType: case SymbolKind.IntrinsicMatrixType: case SymbolKind.IntrinsicObjectType: case SymbolKind.Class: case SymbolKind.Struct: case SymbolKind.Interface: markup.AppendTypeDeclaration((TypeSymbol) symbol); break; case SymbolKind.Namespace: markup.AppendNamespace((NamespaceSymbol) symbol); break; case SymbolKind.Semantic: markup.AppendSemantic((SemanticSymbol) symbol); break; case SymbolKind.Technique: markup.AppendTechnique((TechniqueSymbol) symbol); break; case SymbolKind.TypeAlias: markup.AppendTypeAlias((TypeAliasSymbol) symbol); break; case SymbolKind.Attribute: markup.AppendAttribute((AttributeSymbol) symbol); break; case SymbolKind.ConstantBuffer: markup.AppendConstantBuffer((ConstantBufferSymbol) symbol); break; default: throw new ArgumentOutOfRangeException(nameof(symbol), symbol.Kind.ToString()); } }
public static void AppendSymbol(this ICollection<SymbolMarkupToken> markup, Symbol symbol) { switch (symbol.Kind) { case SymbolKind.Array: break; case SymbolKind.Struct: break; case SymbolKind.Class: break; case SymbolKind.Interface: break; case SymbolKind.Field: break; case SymbolKind.FunctionDeclaration: case SymbolKind.FunctionDefinition: markup.AppendFunctionSymbolInfo((FunctionSymbol) symbol); break; case SymbolKind.MethodDeclaration: case SymbolKind.MethodDefinition: markup.AppendMethodSymbolInfo((MethodSymbol) symbol); break; case SymbolKind.LocalVariable: break; case SymbolKind.GlobalVariable: break; case SymbolKind.Parameter: markup.AppendParameterSymbolInfo((ParameterSymbol)symbol); break; case SymbolKind.Indexer: break; case SymbolKind.IntrinsicType: break; default: throw new ArgumentOutOfRangeException(); } }
private static void AppendParameters(this ICollection<SymbolMarkupToken> markup, ImmutableArray<ParameterSymbol> parameters) { markup.AppendPunctuation("("); var isFirst = true; foreach (var parameterSymbol in parameters) { if (isFirst) isFirst = false; else { markup.AppendPunctuation(","); markup.AppendSpace(); } markup.AppendParameterSymbolInfo(parameterSymbol); } markup.AppendPunctuation(")"); }