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

Method lookupDataType

erpcgen/src/SymbolScanner.cpp:1503–1541  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1501}
1502
1503DataType *SymbolScanner::lookupDataType(const AstNode *typeNode)
1504{
1505 const Token &typeToken = typeNode->getToken();
1506 switch (typeToken.getToken())
1507 {
1508 case TOK_ARRAY:
1509 {
1510 return createArrayType(typeNode);
1511 }
1512
1513 case TOK_IDENT:
1514 {
1515 DataType *dataType = nullptr;
1516 if (m_currentInterface != nullptr)
1517 {
1518 dataType = lookupDataTypeByName(typeToken, &m_currentInterface->getScope());
1519 }
1520 if (dataType == nullptr)
1521 {
1522 dataType = lookupDataTypeByName(typeToken, m_globals);
1523 }
1524 return dataType;
1525 }
1526 case TOK_LIST:
1527 {
1528 return createListType(typeNode);
1529 }
1530 case TOK_UNION:
1531 {
1532 assert(nullptr != m_currentStruct);
1533 return lookupDataTypeByName(typeNode->getChild(3)->getToken(), &(m_currentStruct->getScope()), false);
1534 }
1535 default:
1536 {
1537 throw internal_error(format_string("unexpected token type %s on line %d", typeToken.getTokenName(),
1538 typeToken.getLocation().m_firstLine));
1539 }
1540 }
1541}
1542
1543DataType *SymbolScanner::createListType(const AstNode *typeNode)
1544{

Callers

nothing calls this directly

Calls 5

internal_errorClass · 0.85
format_stringFunction · 0.85
getTokenMethod · 0.80
getChildMethod · 0.80
getTokenNameMethod · 0.80

Tested by

no test coverage detected