data: basic template parsing
* Implemented basic parsing and storage of template parameter types, template classes and template functions * Added template specialization edge. * Implemented handling of partial specializations. Needs some more tweaking. * Added a lot of test code for template stuff (still needs some cases to be tested) * Removed the isTemplateParameterType from DataType, since it shouldn't be needed * Function qualTypeToDataType uses clang PrintingPolicy to fetch the desired format. * Merged a lot of code for getting the correct names and name hierarchies of definitions * Removed TokenComponentDataType * Merged both of the Storage::addTypeEdge(...) functions * Added "-fno-delayed-template-parsing" flag to parser for parsing test code.
This commit is contained in:
+15
-13
@@ -19,21 +19,23 @@ class Node: public Token
|
||||
{
|
||||
public:
|
||||
typedef int NodeTypeMask;
|
||||
// list undefined types first to ensure that they get replaced by their defined counterparts when it is parsed.
|
||||
enum NodeType : NodeTypeMask
|
||||
{
|
||||
NODE_UNDEFINED = 0x1,
|
||||
NODE_UNDEFINED_FUNCTION = 0x2,
|
||||
NODE_UNDEFINED_VARIABLE = 0x4,
|
||||
NODE_UNDEFINED_TYPE = 0x8,
|
||||
NODE_STRUCT = 0x10,
|
||||
NODE_CLASS = 0x20,
|
||||
NODE_GLOBAL_VARIABLE = 0x40,
|
||||
NODE_FIELD = 0x80,
|
||||
NODE_FUNCTION = 0x100,
|
||||
NODE_METHOD = 0x200,
|
||||
NODE_NAMESPACE = 0x400,
|
||||
NODE_ENUM = 0x800,
|
||||
NODE_TYPEDEF = 0x1000
|
||||
NODE_UNDEFINED = 0x1,
|
||||
NODE_UNDEFINED_FUNCTION = 0x2,
|
||||
NODE_UNDEFINED_VARIABLE = 0x4,
|
||||
NODE_UNDEFINED_TYPE = 0x8,
|
||||
NODE_STRUCT = 0x10,
|
||||
NODE_CLASS = 0x20,
|
||||
NODE_GLOBAL_VARIABLE = 0x40,
|
||||
NODE_FIELD = 0x80,
|
||||
NODE_FUNCTION = 0x100,
|
||||
NODE_METHOD = 0x200,
|
||||
NODE_NAMESPACE = 0x400,
|
||||
NODE_ENUM = 0x800,
|
||||
NODE_TYPEDEF = 0x1000,
|
||||
NODE_TEMPLATE_PARAMETER_TYPE = 0x2000
|
||||
};
|
||||
|
||||
Node(NodeType type, const std::string& name);
|
||||
|
||||
Reference in New Issue
Block a user