summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/ASTClone.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/cplusplus/ASTClone.cpp')
-rw-r--r--src/shared/cplusplus/ASTClone.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/shared/cplusplus/ASTClone.cpp b/src/shared/cplusplus/ASTClone.cpp
index b8ceec183c..5065cfdd23 100644
--- a/src/shared/cplusplus/ASTClone.cpp
+++ b/src/shared/cplusplus/ASTClone.cpp
@@ -1288,9 +1288,27 @@ ObjCMessageExpressionAST *ObjCMessageExpressionAST::clone(MemoryPool *pool) cons
{
ObjCMessageExpressionAST *ast = new (pool) ObjCMessageExpressionAST;
ast->lbracket_token = lbracket_token;
- // FIXME: TODO
+ if (receiver_expression) ast->receiver_expression = receiver_expression->clone(pool);
+ if (argument_list) ast->argument_list = argument_list->clone(pool);
ast->rbracket_token = rbracket_token;
return ast;
}
+ObjCMessageArgumentListAST *ObjCMessageArgumentListAST::clone(MemoryPool *pool) const
+{
+ ObjCMessageArgumentListAST *ast = new (pool) ObjCMessageArgumentListAST;
+ if (arg) ast->arg = arg->clone(pool);
+ if (next) ast->next = next->clone(pool);
+ return ast;
+}
+
+ObjCMessageArgumentAST *ObjCMessageArgumentAST::clone(MemoryPool *pool) const
+{
+ ObjCMessageArgumentAST *ast = new (pool) ObjCMessageArgumentAST;
+ ast->parameter_key_identifier = parameter_key_identifier;
+ ast->colon_token = colon_token;
+ if (parameter_value_expression) ast->parameter_value_expression = parameter_value_expression->clone(pool);
+ return ast;
+}
+
CPLUSPLUS_END_NAMESPACE