diff options
author | Erik Verbruggen <erik.verbruggen@nokia.com> | 2009-07-13 09:45:28 +0200 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@nokia.com> | 2009-07-13 11:08:11 +0200 |
commit | 78cceecc28f06cf2c23e01e8daef4ceb6a5842d4 (patch) | |
tree | 202e64cb49bbaabc8687cce0387ce97337982873 /src/shared/cplusplus/ASTClone.cpp | |
parent | 93f5fdc0f9117e7b2b1c415cab381912db08f62a (diff) | |
download | qt-creator-78cceecc28f06cf2c23e01e8daef4ceb6a5842d4.tar.gz |
Added AST for a bit of ObjC.
Diffstat (limited to 'src/shared/cplusplus/ASTClone.cpp')
-rw-r--r-- | src/shared/cplusplus/ASTClone.cpp | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/src/shared/cplusplus/ASTClone.cpp b/src/shared/cplusplus/ASTClone.cpp index 2e446c89ef..b8ceec183c 100644 --- a/src/shared/cplusplus/ASTClone.cpp +++ b/src/shared/cplusplus/ASTClone.cpp @@ -1224,4 +1224,73 @@ ObjCClassDeclarationAST *ObjCClassDeclarationAST::clone(MemoryPool *pool) const return ast; } +ObjCClassInterfaceDeclarationAST *ObjCClassInterfaceDeclarationAST::clone(MemoryPool *pool) const +{ + ObjCClassInterfaceDeclarationAST *ast = new (pool) ObjCClassInterfaceDeclarationAST; + // copy DeclarationAST + // copy ObjCClassInterfaceDeclarationAST + if (attributes) ast->attributes = attributes->clone(pool); + ast->interface_token = interface_token; + ast->class_identifier_token = class_identifier_token; + ast->colon_token = colon_token; + ast->superclass_identifier_token = superclass_identifier_token; + if (protocol_refs) ast->protocol_refs = protocol_refs->clone(pool); + ast->end_token = end_token; + return ast; +} + +ObjCCategoryInterfaceDeclarationAST *ObjCCategoryInterfaceDeclarationAST::clone(MemoryPool *pool) const +{ + ObjCCategoryInterfaceDeclarationAST *ast = new (pool) ObjCCategoryInterfaceDeclarationAST; + // copy DeclarationAST + // copy ObjCCategoryInterfaceDeclarationAST + ast->interface_token = interface_token; + ast->class_identifier_token = class_identifier_token; + if (protocol_refs) ast->protocol_refs = protocol_refs->clone(pool); + ast->lparen_token = lparen_token; + ast->category_identifier_token = category_identifier_token; + ast->rparen_token = rparen_token; + ast->end_token = end_token; + return ast; +} + +ObjCProtocolDeclarationAST *ObjCProtocolDeclarationAST::clone(MemoryPool *pool) const +{ + ObjCProtocolDeclarationAST *ast = new (pool) ObjCProtocolDeclarationAST; + if (attributes) ast->attributes = attributes->clone(pool); + ast->protocol_token = protocol_token; + if (identifier_list) ast->identifier_list = identifier_list; + ast->semicolon_token = semicolon_token; + return ast; +} + +ObjCProtocolDefinitionAST *ObjCProtocolDefinitionAST::clone(MemoryPool *pool) const +{ + ObjCProtocolDefinitionAST *ast = new (pool) ObjCProtocolDefinitionAST; + if (attributes) ast->attributes = attributes->clone(pool); + ast->protocol_token = protocol_token; + ast->identifier_token = identifier_token; + if (protocol_refs) ast->protocol_refs = protocol_refs->clone(pool); + ast->end_token = end_token; + return ast; +} + +ObjCProtocolRefsAST *ObjCProtocolRefsAST::clone(MemoryPool *pool) const +{ + ObjCProtocolRefsAST *ast = new (pool) ObjCProtocolRefsAST; + ast->less_token = less_token; + if (ast->identifier_list) ast->identifier_list = identifier_list->clone(pool); + ast->greater_token = greater_token; + return ast; +} + +ObjCMessageExpressionAST *ObjCMessageExpressionAST::clone(MemoryPool *pool) const +{ + ObjCMessageExpressionAST *ast = new (pool) ObjCMessageExpressionAST; + ast->lbracket_token = lbracket_token; + // FIXME: TODO + ast->rbracket_token = rbracket_token; + return ast; +} + CPLUSPLUS_END_NAMESPACE |