MCPcopy Create free account
hub / github.com/EmbeddedRPC/erpc / getTypenameName

Method getTypenameName

erpcgen/src/CGenerator.cpp:2205–2280  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2203}
2204
2205string CGenerator::getTypenameName(DataType *t, const string &name)
2206{
2207 string returnName;
2208 switch (t->getDataType())
2209 {
2210 case DataType::data_type_t::kArrayType:
2211 {
2212 // Array type requires the array element count to come after the variable/member name.
2213 returnName = name;
2214 ArrayType *a = dynamic_cast<ArrayType *>(t);
2215 assert(a);
2216 giveBracesToArrays(returnName);
2217 returnName = format_string("%s[%d]", returnName.c_str(), a->getElementCount());
2218 returnName = getTypenameName(a->getElementType(), returnName);
2219 break;
2220 }
2221 case DataType::data_type_t::kBuiltinType:
2222 {
2223 assert(nullptr != dynamic_cast<const BuiltinType *>(t));
2224 returnName = getBuiltinTypename(dynamic_cast<const BuiltinType *>(t));
2225 if (!(t->isString() && name != "" && name[0] == '*'))
2226 {
2227 returnName += returnSpaceWhenNotEmpty(name);
2228 }
2229 returnName += name;
2230 break;
2231 }
2232 case DataType::data_type_t::kListType:
2233 {
2234 const ListType *a = dynamic_cast<const ListType *>(t);
2235 assert(a);
2236 returnName = "* " + name;
2237 returnName = getTypenameName(a->getElementType(), returnName);
2238 break;
2239 }
2240 case DataType::data_type_t::kUnionType:
2241 {
2242 UnionType *unionType = dynamic_cast<UnionType *>(t);
2243 assert(unionType);
2244 if (unionType->isNonEncapsulatedUnion())
2245 {
2246 returnName = getOutputName(t);
2247 returnName += returnSpaceWhenNotEmpty(name) + name;
2248 }
2249 else
2250 {
2251 returnName += "union\n {\n";
2252 returnName += getUnionMembersData(unionType, " ");
2253 returnName += "\n } " + name;
2254 }
2255 break;
2256 }
2257 case DataType::data_type_t::kVoidType:
2258 {
2259 returnName = "void";
2260 returnName += returnSpaceWhenNotEmpty(name) + name;
2261 break;
2262 }

Callers

nothing calls this directly

Calls 7

format_stringFunction · 0.85
internal_errorClass · 0.85
getDataTypeMethod · 0.45
getElementTypeMethod · 0.45
isStringMethod · 0.45
getNameMethod · 0.45

Tested by

no test coverage detected