1//
2// TypeDef.cpp
3//
4// Library: CppParser
5// Package: SymbolTable
6// Module: TypeDef
7//
8// Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
9// and Contributors.
10//
11// SPDX-License-Identifier: BSL-1.0
12//
13
14
15#include "Poco/CppParser/TypeDef.h"
16#include "Poco/String.h"
17#include <cctype>
18
19
20namespace Poco {
21namespace CppParser {
22
23
24TypeDef::TypeDef(const std::string& decl, NameSpace* pNameSpace):
25 Decl(decl, pNameSpace)
26{
27}
28
29
30TypeDef::~TypeDef()
31{
32}
33
34
35Symbol::Kind TypeDef::kind() const
36{
37 return Symbol::SYM_TYPEDEF;
38}
39
40
41std::string TypeDef::baseType() const
42{
43 std::string decl = declaration();
44 if (decl.compare(0, 7, "typedef") == 0)
45 {
46 decl.erase(0, 7);
47 std::string::size_type pos = decl.size() - 1;
48 while (pos > 0 && std::isspace(decl[pos])) pos--;
49 while (pos > 0 && !std::isspace(decl[pos])) pos--;
50 decl.resize(pos + 1);
51 Poco::trimInPlace(decl);
52 }
53 return decl;
54}
55
56
57} } // namespace Poco::CppParser
58