public static bool IsParameterConst(string form, CodeGen.QualifiableType qualifiable) { // // This replicates some of the logic of the D2D codegen. // switch (form) { case "pointer": case "pointer opt": return(qualifiable is CodeGen.Struct); default: return(false); } }
static string GetParameterTypeNameIncludingIndirection( CodeGen.Interface.Method.Parameter p, Dictionary<string, CodeGen.QualifiableType> typeDictionary) { CodeGen.QualifiableType qualifiable = null; if (typeDictionary.ContainsKey(p.NativeTypeName)) qualifiable = typeDictionary[p.NativeTypeName]; string constPart = IsParameterConst(p.Form, qualifiable) ? "CONST " : ""; string mainPart = GetParameterTypeName_NoKeywordsOrIndirection(p.NativeTypeName, qualifiable); string indirection = GetIndirection(p.Form); return constPart + mainPart + indirection; }
static string GetParameterTypeName_NoKeywordsOrIndirection(string nativeTypeName, CodeGen.QualifiableType qualifiable) { return(qualifiable == null ? nativeTypeName : qualifiable.NativeName); }