public static bool TryGetNativeNameKind(NativeSymbolKind symbolKind, out NativeNameKind nameKind) { switch (symbolKind) { case NativeSymbolKind.StructType: nameKind = NativeNameKind.Struct; return(true); case NativeSymbolKind.EnumType: nameKind = NativeNameKind.Enum; return(true); case NativeSymbolKind.UnionType: nameKind = NativeNameKind.Union; return(true); case NativeSymbolKind.TypeDefType: nameKind = NativeNameKind.TypeDef; return(true); case NativeSymbolKind.Procedure: nameKind = NativeNameKind.Procedure; return(true); case NativeSymbolKind.FunctionPointer: nameKind = NativeNameKind.FunctionPointer; return(true); case NativeSymbolKind.EnumNameValue: nameKind = NativeNameKind.EnumValue; return(true); case NativeSymbolKind.Constant: nameKind = NativeNameKind.Constant; return(true); case NativeSymbolKind.ArrayType: case NativeSymbolKind.PointerType: case NativeSymbolKind.BuiltinType: case NativeSymbolKind.BitVectorType: case NativeSymbolKind.NamedType: case NativeSymbolKind.ProcedureSignature: case NativeSymbolKind.Parameter: case NativeSymbolKind.Member: case NativeSymbolKind.SalEntry: case NativeSymbolKind.SalAttribute: case NativeSymbolKind.ValueExpression: case NativeSymbolKind.Value: case NativeSymbolKind.OpaqueType: nameKind = (NativeNameKind)0; return(false); default: Contract.ThrowInvalidEnumValue(symbolKind); nameKind = (NativeNameKind)0; return(false); } }
private NativeGlobalSymbol ImportStructOrUnion(NativeNameKind kind) { Contract.Requires(kind == NativeNameKind.Struct || kind == NativeNameKind.Union); var name = _reader.ReadString(); var nt = kind == NativeNameKind.Struct ? (NativeDefinedType) new NativeStruct(name) : new NativeUnion(name); var count = _reader.ReadInt32(); for (var i = 0; i < count; i++) { var memberName = _reader.ReadString(); var memberType = ImportTypeReference(); nt.Members.Add(new NativeMember(memberName, memberType)); } return(new NativeGlobalSymbol(nt)); }
public static bool IsAnyType(NativeNameKind kind) { switch (kind) { case NativeNameKind.Struct: case NativeNameKind.Union: case NativeNameKind.FunctionPointer: case NativeNameKind.TypeDef: return(true); case NativeNameKind.Procedure: case NativeNameKind.Constant: case NativeNameKind.Enum: case NativeNameKind.EnumValue: return(false); default: Contract.ThrowInvalidEnumValue(kind); return(false); } }
public static NativeSymbolKind GetNativeSymbolKind(NativeNameKind kind) { switch (kind) { case NativeNameKind.Struct: return(NativeSymbolKind.StructType); case NativeNameKind.Union: return(NativeSymbolKind.UnionType); case NativeNameKind.FunctionPointer: return(NativeSymbolKind.FunctionPointer); case NativeNameKind.Procedure: return(NativeSymbolKind.Procedure); case NativeNameKind.TypeDef: return(NativeSymbolKind.TypeDefType); case NativeNameKind.Constant: return(NativeSymbolKind.Constant); case NativeNameKind.Enum: return(NativeSymbolKind.EnumType); case NativeNameKind.EnumValue: return(NativeSymbolKind.EnumNameValue); default: throw Contract.CreateInvalidEnumValueException(kind); } }
public static void WriteNameKind(this IBulkWriter writer, NativeNameKind kind) => writer.WriteInt32((int)kind);
public NativeName(string name, NativeNameKind kind) { Name = name; Kind = kind; }