| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | /**************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** This file is part of Qt Creator | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2010-03-05 11:25:49 +01:00
										 |  |  | ** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | ** | 
					
						
							|  |  |  | ** Contact: Nokia Corporation (qt-info@nokia.com) | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Commercial Usage | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Licensees holding valid Qt Commercial licenses may use this file in | 
					
						
							|  |  |  | ** accordance with the Qt Commercial License Agreement provided with the | 
					
						
							|  |  |  | ** Software or, alternatively, in accordance with the terms contained in | 
					
						
							|  |  |  | ** a written agreement between you and Nokia. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** GNU Lesser General Public License Usage | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Alternatively, this file may be used under the terms of the GNU Lesser | 
					
						
							|  |  |  | ** General Public License version 2.1 as published by the Free Software | 
					
						
							|  |  |  | ** Foundation and appearing in the file LICENSE.LGPL included in the | 
					
						
							|  |  |  | ** packaging of this file.  Please review the following information to | 
					
						
							|  |  |  | ** ensure the GNU Lesser General Public License version 2.1 requirements | 
					
						
							|  |  |  | ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** If you are unsure which license is appropriate for your use, please | 
					
						
							|  |  |  | ** contact the sales department at http://qt.nokia.com/contact.
 | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | **************************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-04 12:03:34 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | //  W A R N I N G
 | 
					
						
							|  |  |  | //  -------------
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // This file is automatically generated.
 | 
					
						
							|  |  |  | // Changes will be lost.
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | #include "AST.h"
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | #include "ASTMatcher.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | using namespace CPlusPlus; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-25 12:10:01 +01:00
										 |  |  | ASTMatcher::ASTMatcher() | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | { } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ASTMatcher::~ASTMatcher() | 
					
						
							|  |  |  | { } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 17:43:40 +01:00
										 |  |  | bool ASTMatcher::match(ObjCSelectorArgumentAST *node, ObjCSelectorArgumentAST *pattern) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->name_token = node->name_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->colon_token = node->colon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | bool ASTMatcher::match(ObjCSelectorAST *node, ObjCSelectorAST *pattern) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->selector_argument_list) | 
					
						
							|  |  |  |         pattern->selector_argument_list = node->selector_argument_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->selector_argument_list, pattern->selector_argument_list, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(SimpleSpecifierAST *node, SimpleSpecifierAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->specifier_token = node->specifier_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(AttributeSpecifierAST *node, AttributeSpecifierAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->attribute_token = node->attribute_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->first_lparen_token = node->first_lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->second_lparen_token = node->second_lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->attribute_list) | 
					
						
							|  |  |  |         pattern->attribute_list = node->attribute_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->attribute_list, pattern->attribute_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->first_rparen_token = node->first_rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->second_rparen_token = node->second_rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(AttributeAST *node, AttributeAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->identifier_token = node->identifier_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->tag_token = node->tag_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression_list) | 
					
						
							|  |  |  |         pattern->expression_list = node->expression_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression_list, pattern->expression_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(TypeofSpecifierAST *node, TypeofSpecifierAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->typeof_token = node->typeof_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression) | 
					
						
							|  |  |  |         pattern->expression = node->expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression, pattern->expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(DeclaratorAST *node, DeclaratorAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->attribute_list) | 
					
						
							|  |  |  |         pattern->attribute_list = node->attribute_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->attribute_list, pattern->attribute_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->ptr_operator_list) | 
					
						
							|  |  |  |         pattern->ptr_operator_list = node->ptr_operator_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->ptr_operator_list, pattern->ptr_operator_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->core_declarator) | 
					
						
							|  |  |  |         pattern->core_declarator = node->core_declarator; | 
					
						
							|  |  |  |     else if (! AST::match(node->core_declarator, pattern->core_declarator, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->postfix_declarator_list) | 
					
						
							|  |  |  |         pattern->postfix_declarator_list = node->postfix_declarator_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->postfix_declarator_list, pattern->postfix_declarator_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->post_attribute_list) | 
					
						
							|  |  |  |         pattern->post_attribute_list = node->post_attribute_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->post_attribute_list, pattern->post_attribute_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->equals_token = node->equals_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->initializer) | 
					
						
							|  |  |  |         pattern->initializer = node->initializer; | 
					
						
							|  |  |  |     else if (! AST::match(node->initializer, pattern->initializer, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(SimpleDeclarationAST *node, SimpleDeclarationAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->qt_invokable_token = node->qt_invokable_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->decl_specifier_list) | 
					
						
							|  |  |  |         pattern->decl_specifier_list = node->decl_specifier_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->decl_specifier_list, pattern->decl_specifier_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->declarator_list) | 
					
						
							|  |  |  |         pattern->declarator_list = node->declarator_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->declarator_list, pattern->declarator_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->semicolon_token = node->semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(EmptyDeclarationAST *node, EmptyDeclarationAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->semicolon_token = node->semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(AccessDeclarationAST *node, AccessDeclarationAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->access_specifier_token = node->access_specifier_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->slots_token = node->slots_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->colon_token = node->colon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-19 15:26:08 +10:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-17 14:35:48 +01:00
										 |  |  | bool ASTMatcher::match(QtObjectTagAST *node, QtObjectTagAST *pattern) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->q_object_token = node->q_object_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | bool ASTMatcher::match(QtPrivateSlotAST *node, QtPrivateSlotAST *pattern) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->q_private_slot_token = node->q_private_slot_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->dptr_token = node->dptr_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->dptr_lparen_token = node->dptr_lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->dptr_rparen_token = node->dptr_rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->comma_token = node->comma_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->type_specifiers) | 
					
						
							|  |  |  |         pattern->type_specifiers = node->type_specifiers; | 
					
						
							|  |  |  |     else if (! AST::match(node->type_specifiers, pattern->type_specifiers, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->declarator) | 
					
						
							|  |  |  |         pattern->declarator = node->declarator; | 
					
						
							|  |  |  |     else if (! AST::match(node->declarator, pattern->declarator, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-16 16:54:39 +01:00
										 |  |  | bool ASTMatcher::match(QtPropertyDeclarationItemAST *node, QtPropertyDeclarationItemAST *pattern) | 
					
						
							| 
									
										
										
										
											2010-01-19 15:26:08 +10:00
										 |  |  | { | 
					
						
							|  |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-16 16:54:39 +01:00
										 |  |  |     pattern->item_name_token = node->item_name_token; | 
					
						
							| 
									
										
										
										
											2010-01-19 15:26:08 +10:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-16 16:54:39 +01:00
										 |  |  |     if (! pattern->expression) | 
					
						
							|  |  |  |         pattern->expression = node->expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression, pattern->expression, this)) | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2010-01-19 15:26:08 +10:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-06 15:47:46 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2010-02-04 12:03:34 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-06 15:47:46 +01:00
										 |  |  | bool ASTMatcher::match(QtPropertyDeclarationAST *node, QtPropertyDeclarationAST *pattern) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-06 15:47:46 +01:00
										 |  |  |     pattern->property_specifier_token = node->property_specifier_token; | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-06 15:47:46 +01:00
										 |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-06 15:47:46 +01:00
										 |  |  |     if (! pattern->type_id) | 
					
						
							|  |  |  |         pattern->type_id = node->type_id; | 
					
						
							|  |  |  |     else if (! AST::match(node->type_id, pattern->type_id, this)) | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-06 15:47:46 +01:00
										 |  |  |     if (! pattern->property_name) | 
					
						
							|  |  |  |         pattern->property_name = node->property_name; | 
					
						
							|  |  |  |     else if (! AST::match(node->property_name, pattern->property_name, this)) | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-06 15:47:46 +01:00
										 |  |  |     if (! pattern->property_declaration_items) | 
					
						
							|  |  |  |         pattern->property_declaration_items = node->property_declaration_items; | 
					
						
							|  |  |  |     else if (! AST::match(node->property_declaration_items, pattern->property_declaration_items, this)) | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-04 12:03:34 +01:00
										 |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-19 15:26:08 +10:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  | bool ASTMatcher::match(QtEnumDeclarationAST *node, QtEnumDeclarationAST *pattern) | 
					
						
							| 
									
										
										
										
											2010-01-19 15:26:08 +10:00
										 |  |  | { | 
					
						
							|  |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->enum_specifier_token = node->enum_specifier_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-04 12:03:34 +01:00
										 |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-19 15:26:08 +10:00
										 |  |  |     if (! pattern->enumerator_list) | 
					
						
							|  |  |  |         pattern->enumerator_list = node->enumerator_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->enumerator_list, pattern->enumerator_list, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-19 15:26:08 +10:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  | bool ASTMatcher::match(QtFlagsDeclarationAST *node, QtFlagsDeclarationAST *pattern) | 
					
						
							| 
									
										
										
										
											2010-01-19 15:26:08 +10:00
										 |  |  | { | 
					
						
							|  |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->flags_specifier_token = node->flags_specifier_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-04 12:03:34 +01:00
										 |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-06 11:38:54 +01:00
										 |  |  |     if (! pattern->flag_enums_list) | 
					
						
							|  |  |  |         pattern->flag_enums_list = node->flag_enums_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->flag_enums_list, pattern->flag_enums_list, this)) | 
					
						
							| 
									
										
										
										
											2010-01-19 15:26:08 +10:00
										 |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-06 11:38:54 +01:00
										 |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-19 15:26:08 +10:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-16 17:29:40 +01:00
										 |  |  | bool ASTMatcher::match(QtInterfaceNameAST *node, QtInterfaceNameAST *pattern) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->interface_name) | 
					
						
							|  |  |  |         pattern->interface_name = node->interface_name; | 
					
						
							|  |  |  |     else if (! AST::match(node->interface_name, pattern->interface_name, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->constraint_list) | 
					
						
							|  |  |  |         pattern->constraint_list = node->constraint_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->constraint_list, pattern->constraint_list, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | bool ASTMatcher::match(QtInterfacesDeclarationAST *node, QtInterfacesDeclarationAST *pattern) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->interfaces_token = node->interfaces_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->interface_name_list) | 
					
						
							|  |  |  |         pattern->interface_name_list = node->interface_name_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->interface_name_list, pattern->interface_name_list, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(AsmDefinitionAST *node, AsmDefinitionAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->asm_token = node->asm_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->volatile_token = node->volatile_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->semicolon_token = node->semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(BaseSpecifierAST *node, BaseSpecifierAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->virtual_token = node->virtual_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->access_specifier_token = node->access_specifier_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->name) | 
					
						
							|  |  |  |         pattern->name = node->name; | 
					
						
							|  |  |  |     else if (! AST::match(node->name, pattern->name, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-04 14:55:18 +01:00
										 |  |  | bool ASTMatcher::match(CompoundExpressionAST *node, CompoundExpressionAST *pattern) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-23 10:22:41 +01:00
										 |  |  |     if (! pattern->statement) | 
					
						
							|  |  |  |         pattern->statement = node->statement; | 
					
						
							|  |  |  |     else if (! AST::match(node->statement, pattern->statement, this)) | 
					
						
							| 
									
										
										
										
											2010-02-04 14:55:18 +01:00
										 |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(CompoundLiteralAST *node, CompoundLiteralAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->type_id) | 
					
						
							|  |  |  |         pattern->type_id = node->type_id; | 
					
						
							|  |  |  |     else if (! AST::match(node->type_id, pattern->type_id, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->initializer) | 
					
						
							|  |  |  |         pattern->initializer = node->initializer; | 
					
						
							|  |  |  |     else if (! AST::match(node->initializer, pattern->initializer, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(QtMethodAST *node, QtMethodAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->method_token = node->method_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->declarator) | 
					
						
							|  |  |  |         pattern->declarator = node->declarator; | 
					
						
							|  |  |  |     else if (! AST::match(node->declarator, pattern->declarator, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-30 16:30:21 +01:00
										 |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | bool ASTMatcher::match(QtMemberDeclarationAST *node, QtMemberDeclarationAST *pattern) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->q_token = node->q_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->type_id) | 
					
						
							|  |  |  |         pattern->type_id = node->type_id; | 
					
						
							|  |  |  |     else if (! AST::match(node->type_id, pattern->type_id, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(BinaryExpressionAST *node, BinaryExpressionAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->left_expression) | 
					
						
							|  |  |  |         pattern->left_expression = node->left_expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->left_expression, pattern->left_expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->binary_op_token = node->binary_op_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->right_expression) | 
					
						
							|  |  |  |         pattern->right_expression = node->right_expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->right_expression, pattern->right_expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(CastExpressionAST *node, CastExpressionAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->type_id) | 
					
						
							|  |  |  |         pattern->type_id = node->type_id; | 
					
						
							|  |  |  |     else if (! AST::match(node->type_id, pattern->type_id, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression) | 
					
						
							|  |  |  |         pattern->expression = node->expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression, pattern->expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ClassSpecifierAST *node, ClassSpecifierAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->classkey_token = node->classkey_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->attribute_list) | 
					
						
							|  |  |  |         pattern->attribute_list = node->attribute_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->attribute_list, pattern->attribute_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->name) | 
					
						
							|  |  |  |         pattern->name = node->name; | 
					
						
							|  |  |  |     else if (! AST::match(node->name, pattern->name, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->colon_token = node->colon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->base_clause_list) | 
					
						
							|  |  |  |         pattern->base_clause_list = node->base_clause_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->base_clause_list, pattern->base_clause_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-23 13:52:24 +01:00
										 |  |  |     pattern->dot_dot_dot_token = node->dot_dot_dot_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     pattern->lbrace_token = node->lbrace_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->member_specifier_list) | 
					
						
							|  |  |  |         pattern->member_specifier_list = node->member_specifier_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->member_specifier_list, pattern->member_specifier_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rbrace_token = node->rbrace_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(CaseStatementAST *node, CaseStatementAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->case_token = node->case_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression) | 
					
						
							|  |  |  |         pattern->expression = node->expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression, pattern->expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->colon_token = node->colon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->statement) | 
					
						
							|  |  |  |         pattern->statement = node->statement; | 
					
						
							|  |  |  |     else if (! AST::match(node->statement, pattern->statement, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(CompoundStatementAST *node, CompoundStatementAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lbrace_token = node->lbrace_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->statement_list) | 
					
						
							|  |  |  |         pattern->statement_list = node->statement_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->statement_list, pattern->statement_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rbrace_token = node->rbrace_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ConditionAST *node, ConditionAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->type_specifier_list) | 
					
						
							|  |  |  |         pattern->type_specifier_list = node->type_specifier_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->type_specifier_list, pattern->type_specifier_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->declarator) | 
					
						
							|  |  |  |         pattern->declarator = node->declarator; | 
					
						
							|  |  |  |     else if (! AST::match(node->declarator, pattern->declarator, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ConditionalExpressionAST *node, ConditionalExpressionAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->condition) | 
					
						
							|  |  |  |         pattern->condition = node->condition; | 
					
						
							|  |  |  |     else if (! AST::match(node->condition, pattern->condition, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->question_token = node->question_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->left_expression) | 
					
						
							|  |  |  |         pattern->left_expression = node->left_expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->left_expression, pattern->left_expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->colon_token = node->colon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->right_expression) | 
					
						
							|  |  |  |         pattern->right_expression = node->right_expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->right_expression, pattern->right_expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(CppCastExpressionAST *node, CppCastExpressionAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->cast_token = node->cast_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->less_token = node->less_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->type_id) | 
					
						
							|  |  |  |         pattern->type_id = node->type_id; | 
					
						
							|  |  |  |     else if (! AST::match(node->type_id, pattern->type_id, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->greater_token = node->greater_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression) | 
					
						
							|  |  |  |         pattern->expression = node->expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression, pattern->expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(CtorInitializerAST *node, CtorInitializerAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->colon_token = node->colon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->member_initializer_list) | 
					
						
							|  |  |  |         pattern->member_initializer_list = node->member_initializer_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->member_initializer_list, pattern->member_initializer_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-23 13:52:24 +01:00
										 |  |  |     pattern->dot_dot_dot_token = node->dot_dot_dot_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(DeclarationStatementAST *node, DeclarationStatementAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->declaration) | 
					
						
							|  |  |  |         pattern->declaration = node->declaration; | 
					
						
							|  |  |  |     else if (! AST::match(node->declaration, pattern->declaration, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(DeclaratorIdAST *node, DeclaratorIdAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-25 10:26:33 +01:00
										 |  |  |     pattern->dot_dot_dot_token = node->dot_dot_dot_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     if (! pattern->name) | 
					
						
							|  |  |  |         pattern->name = node->name; | 
					
						
							|  |  |  |     else if (! AST::match(node->name, pattern->name, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(NestedDeclaratorAST *node, NestedDeclaratorAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->declarator) | 
					
						
							|  |  |  |         pattern->declarator = node->declarator; | 
					
						
							|  |  |  |     else if (! AST::match(node->declarator, pattern->declarator, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(FunctionDeclaratorAST *node, FunctionDeclaratorAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->parameters) | 
					
						
							|  |  |  |         pattern->parameters = node->parameters; | 
					
						
							|  |  |  |     else if (! AST::match(node->parameters, pattern->parameters, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->cv_qualifier_list) | 
					
						
							|  |  |  |         pattern->cv_qualifier_list = node->cv_qualifier_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->cv_qualifier_list, pattern->cv_qualifier_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->exception_specification) | 
					
						
							|  |  |  |         pattern->exception_specification = node->exception_specification; | 
					
						
							|  |  |  |     else if (! AST::match(node->exception_specification, pattern->exception_specification, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-24 14:56:30 +01:00
										 |  |  |     if (! pattern->trailing_return_type) | 
					
						
							|  |  |  |         pattern->trailing_return_type = node->trailing_return_type; | 
					
						
							|  |  |  |     else if (! AST::match(node->trailing_return_type, pattern->trailing_return_type, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     if (! pattern->as_cpp_initializer) | 
					
						
							|  |  |  |         pattern->as_cpp_initializer = node->as_cpp_initializer; | 
					
						
							|  |  |  |     else if (! AST::match(node->as_cpp_initializer, pattern->as_cpp_initializer, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ArrayDeclaratorAST *node, ArrayDeclaratorAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lbracket_token = node->lbracket_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression) | 
					
						
							|  |  |  |         pattern->expression = node->expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression, pattern->expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rbracket_token = node->rbracket_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(DeleteExpressionAST *node, DeleteExpressionAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->scope_token = node->scope_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->delete_token = node->delete_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lbracket_token = node->lbracket_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->rbracket_token = node->rbracket_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression) | 
					
						
							|  |  |  |         pattern->expression = node->expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression, pattern->expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(DoStatementAST *node, DoStatementAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->do_token = node->do_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->statement) | 
					
						
							|  |  |  |         pattern->statement = node->statement; | 
					
						
							|  |  |  |     else if (! AST::match(node->statement, pattern->statement, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->while_token = node->while_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression) | 
					
						
							|  |  |  |         pattern->expression = node->expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression, pattern->expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->semicolon_token = node->semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(NamedTypeSpecifierAST *node, NamedTypeSpecifierAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->name) | 
					
						
							|  |  |  |         pattern->name = node->name; | 
					
						
							|  |  |  |     else if (! AST::match(node->name, pattern->name, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ElaboratedTypeSpecifierAST *node, ElaboratedTypeSpecifierAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->classkey_token = node->classkey_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-22 18:23:17 +01:00
										 |  |  |     if (! pattern->attribute_list) | 
					
						
							|  |  |  |         pattern->attribute_list = node->attribute_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->attribute_list, pattern->attribute_list, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     if (! pattern->name) | 
					
						
							|  |  |  |         pattern->name = node->name; | 
					
						
							|  |  |  |     else if (! AST::match(node->name, pattern->name, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(EnumSpecifierAST *node, EnumSpecifierAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->enum_token = node->enum_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->name) | 
					
						
							|  |  |  |         pattern->name = node->name; | 
					
						
							|  |  |  |     else if (! AST::match(node->name, pattern->name, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->lbrace_token = node->lbrace_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->enumerator_list) | 
					
						
							|  |  |  |         pattern->enumerator_list = node->enumerator_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->enumerator_list, pattern->enumerator_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rbrace_token = node->rbrace_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(EnumeratorAST *node, EnumeratorAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->identifier_token = node->identifier_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->equal_token = node->equal_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression) | 
					
						
							|  |  |  |         pattern->expression = node->expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression, pattern->expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ExceptionDeclarationAST *node, ExceptionDeclarationAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->type_specifier_list) | 
					
						
							|  |  |  |         pattern->type_specifier_list = node->type_specifier_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->type_specifier_list, pattern->type_specifier_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->declarator) | 
					
						
							|  |  |  |         pattern->declarator = node->declarator; | 
					
						
							|  |  |  |     else if (! AST::match(node->declarator, pattern->declarator, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->dot_dot_dot_token = node->dot_dot_dot_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ExceptionSpecificationAST *node, ExceptionSpecificationAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->throw_token = node->throw_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->dot_dot_dot_token = node->dot_dot_dot_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->type_id_list) | 
					
						
							|  |  |  |         pattern->type_id_list = node->type_id_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->type_id_list, pattern->type_id_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ExpressionOrDeclarationStatementAST *node, ExpressionOrDeclarationStatementAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression) | 
					
						
							|  |  |  |         pattern->expression = node->expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression, pattern->expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->declaration) | 
					
						
							|  |  |  |         pattern->declaration = node->declaration; | 
					
						
							|  |  |  |     else if (! AST::match(node->declaration, pattern->declaration, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ExpressionStatementAST *node, ExpressionStatementAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression) | 
					
						
							|  |  |  |         pattern->expression = node->expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression, pattern->expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->semicolon_token = node->semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(FunctionDefinitionAST *node, FunctionDefinitionAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->qt_invokable_token = node->qt_invokable_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->decl_specifier_list) | 
					
						
							|  |  |  |         pattern->decl_specifier_list = node->decl_specifier_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->decl_specifier_list, pattern->decl_specifier_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->declarator) | 
					
						
							|  |  |  |         pattern->declarator = node->declarator; | 
					
						
							|  |  |  |     else if (! AST::match(node->declarator, pattern->declarator, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->ctor_initializer) | 
					
						
							|  |  |  |         pattern->ctor_initializer = node->ctor_initializer; | 
					
						
							|  |  |  |     else if (! AST::match(node->ctor_initializer, pattern->ctor_initializer, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->function_body) | 
					
						
							|  |  |  |         pattern->function_body = node->function_body; | 
					
						
							|  |  |  |     else if (! AST::match(node->function_body, pattern->function_body, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ForeachStatementAST *node, ForeachStatementAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->foreach_token = node->foreach_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->type_specifier_list) | 
					
						
							|  |  |  |         pattern->type_specifier_list = node->type_specifier_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->type_specifier_list, pattern->type_specifier_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->declarator) | 
					
						
							|  |  |  |         pattern->declarator = node->declarator; | 
					
						
							|  |  |  |     else if (! AST::match(node->declarator, pattern->declarator, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->initializer) | 
					
						
							|  |  |  |         pattern->initializer = node->initializer; | 
					
						
							|  |  |  |     else if (! AST::match(node->initializer, pattern->initializer, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->comma_token = node->comma_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression) | 
					
						
							|  |  |  |         pattern->expression = node->expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression, pattern->expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->statement) | 
					
						
							|  |  |  |         pattern->statement = node->statement; | 
					
						
							|  |  |  |     else if (! AST::match(node->statement, pattern->statement, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ForStatementAST *node, ForStatementAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->for_token = node->for_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->initializer) | 
					
						
							|  |  |  |         pattern->initializer = node->initializer; | 
					
						
							|  |  |  |     else if (! AST::match(node->initializer, pattern->initializer, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->condition) | 
					
						
							|  |  |  |         pattern->condition = node->condition; | 
					
						
							|  |  |  |     else if (! AST::match(node->condition, pattern->condition, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->semicolon_token = node->semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression) | 
					
						
							|  |  |  |         pattern->expression = node->expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression, pattern->expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->statement) | 
					
						
							|  |  |  |         pattern->statement = node->statement; | 
					
						
							|  |  |  |     else if (! AST::match(node->statement, pattern->statement, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(IfStatementAST *node, IfStatementAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->if_token = node->if_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->condition) | 
					
						
							|  |  |  |         pattern->condition = node->condition; | 
					
						
							|  |  |  |     else if (! AST::match(node->condition, pattern->condition, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->statement) | 
					
						
							|  |  |  |         pattern->statement = node->statement; | 
					
						
							|  |  |  |     else if (! AST::match(node->statement, pattern->statement, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->else_token = node->else_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->else_statement) | 
					
						
							|  |  |  |         pattern->else_statement = node->else_statement; | 
					
						
							|  |  |  |     else if (! AST::match(node->else_statement, pattern->else_statement, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ArrayInitializerAST *node, ArrayInitializerAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lbrace_token = node->lbrace_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression_list) | 
					
						
							|  |  |  |         pattern->expression_list = node->expression_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression_list, pattern->expression_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rbrace_token = node->rbrace_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(LabeledStatementAST *node, LabeledStatementAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->label_token = node->label_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->colon_token = node->colon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->statement) | 
					
						
							|  |  |  |         pattern->statement = node->statement; | 
					
						
							|  |  |  |     else if (! AST::match(node->statement, pattern->statement, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(LinkageBodyAST *node, LinkageBodyAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lbrace_token = node->lbrace_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->declaration_list) | 
					
						
							|  |  |  |         pattern->declaration_list = node->declaration_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->declaration_list, pattern->declaration_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rbrace_token = node->rbrace_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(LinkageSpecificationAST *node, LinkageSpecificationAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->extern_token = node->extern_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->extern_type_token = node->extern_type_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->declaration) | 
					
						
							|  |  |  |         pattern->declaration = node->declaration; | 
					
						
							|  |  |  |     else if (! AST::match(node->declaration, pattern->declaration, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(MemInitializerAST *node, MemInitializerAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->name) | 
					
						
							|  |  |  |         pattern->name = node->name; | 
					
						
							|  |  |  |     else if (! AST::match(node->name, pattern->name, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression_list) | 
					
						
							|  |  |  |         pattern->expression_list = node->expression_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression_list, pattern->expression_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(NestedNameSpecifierAST *node, NestedNameSpecifierAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->class_or_namespace_name) | 
					
						
							|  |  |  |         pattern->class_or_namespace_name = node->class_or_namespace_name; | 
					
						
							|  |  |  |     else if (! AST::match(node->class_or_namespace_name, pattern->class_or_namespace_name, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->scope_token = node->scope_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(QualifiedNameAST *node, QualifiedNameAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->global_scope_token = node->global_scope_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->nested_name_specifier_list) | 
					
						
							|  |  |  |         pattern->nested_name_specifier_list = node->nested_name_specifier_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->nested_name_specifier_list, pattern->nested_name_specifier_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->unqualified_name) | 
					
						
							|  |  |  |         pattern->unqualified_name = node->unqualified_name; | 
					
						
							|  |  |  |     else if (! AST::match(node->unqualified_name, pattern->unqualified_name, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(OperatorFunctionIdAST *node, OperatorFunctionIdAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->operator_token = node->operator_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->op) | 
					
						
							|  |  |  |         pattern->op = node->op; | 
					
						
							|  |  |  |     else if (! AST::match(node->op, pattern->op, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ConversionFunctionIdAST *node, ConversionFunctionIdAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->operator_token = node->operator_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->type_specifier_list) | 
					
						
							|  |  |  |         pattern->type_specifier_list = node->type_specifier_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->type_specifier_list, pattern->type_specifier_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->ptr_operator_list) | 
					
						
							|  |  |  |         pattern->ptr_operator_list = node->ptr_operator_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->ptr_operator_list, pattern->ptr_operator_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(SimpleNameAST *node, SimpleNameAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->identifier_token = node->identifier_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(DestructorNameAST *node, DestructorNameAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->tilde_token = node->tilde_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->identifier_token = node->identifier_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(TemplateIdAST *node, TemplateIdAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->identifier_token = node->identifier_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->less_token = node->less_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->template_argument_list) | 
					
						
							|  |  |  |         pattern->template_argument_list = node->template_argument_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->template_argument_list, pattern->template_argument_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->greater_token = node->greater_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(NamespaceAST *node, NamespaceAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->namespace_token = node->namespace_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->identifier_token = node->identifier_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->attribute_list) | 
					
						
							|  |  |  |         pattern->attribute_list = node->attribute_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->attribute_list, pattern->attribute_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->linkage_body) | 
					
						
							|  |  |  |         pattern->linkage_body = node->linkage_body; | 
					
						
							|  |  |  |     else if (! AST::match(node->linkage_body, pattern->linkage_body, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(NamespaceAliasDefinitionAST *node, NamespaceAliasDefinitionAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->namespace_token = node->namespace_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->namespace_name_token = node->namespace_name_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->equal_token = node->equal_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->name) | 
					
						
							|  |  |  |         pattern->name = node->name; | 
					
						
							|  |  |  |     else if (! AST::match(node->name, pattern->name, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->semicolon_token = node->semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(NewPlacementAST *node, NewPlacementAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression_list) | 
					
						
							|  |  |  |         pattern->expression_list = node->expression_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression_list, pattern->expression_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(NewArrayDeclaratorAST *node, NewArrayDeclaratorAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lbracket_token = node->lbracket_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression) | 
					
						
							|  |  |  |         pattern->expression = node->expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression, pattern->expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rbracket_token = node->rbracket_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(NewExpressionAST *node, NewExpressionAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->scope_token = node->scope_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->new_token = node->new_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->new_placement) | 
					
						
							|  |  |  |         pattern->new_placement = node->new_placement; | 
					
						
							|  |  |  |     else if (! AST::match(node->new_placement, pattern->new_placement, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->type_id) | 
					
						
							|  |  |  |         pattern->type_id = node->type_id; | 
					
						
							|  |  |  |     else if (! AST::match(node->type_id, pattern->type_id, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->new_type_id) | 
					
						
							|  |  |  |         pattern->new_type_id = node->new_type_id; | 
					
						
							|  |  |  |     else if (! AST::match(node->new_type_id, pattern->new_type_id, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->new_initializer) | 
					
						
							|  |  |  |         pattern->new_initializer = node->new_initializer; | 
					
						
							|  |  |  |     else if (! AST::match(node->new_initializer, pattern->new_initializer, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(NewInitializerAST *node, NewInitializerAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression) | 
					
						
							|  |  |  |         pattern->expression = node->expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression, pattern->expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(NewTypeIdAST *node, NewTypeIdAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->type_specifier_list) | 
					
						
							|  |  |  |         pattern->type_specifier_list = node->type_specifier_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->type_specifier_list, pattern->type_specifier_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->ptr_operator_list) | 
					
						
							|  |  |  |         pattern->ptr_operator_list = node->ptr_operator_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->ptr_operator_list, pattern->ptr_operator_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->new_array_declarator_list) | 
					
						
							|  |  |  |         pattern->new_array_declarator_list = node->new_array_declarator_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->new_array_declarator_list, pattern->new_array_declarator_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(OperatorAST *node, OperatorAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->op_token = node->op_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->open_token = node->open_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->close_token = node->close_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ParameterDeclarationAST *node, ParameterDeclarationAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->type_specifier_list) | 
					
						
							|  |  |  |         pattern->type_specifier_list = node->type_specifier_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->type_specifier_list, pattern->type_specifier_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->declarator) | 
					
						
							|  |  |  |         pattern->declarator = node->declarator; | 
					
						
							|  |  |  |     else if (! AST::match(node->declarator, pattern->declarator, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->equal_token = node->equal_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression) | 
					
						
							|  |  |  |         pattern->expression = node->expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression, pattern->expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ParameterDeclarationClauseAST *node, ParameterDeclarationClauseAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->parameter_declaration_list) | 
					
						
							|  |  |  |         pattern->parameter_declaration_list = node->parameter_declaration_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->parameter_declaration_list, pattern->parameter_declaration_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->dot_dot_dot_token = node->dot_dot_dot_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(CallAST *node, CallAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-23 14:38:41 +02:00
										 |  |  |     if (! pattern->base_expression) | 
					
						
							|  |  |  |         pattern->base_expression = node->base_expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->base_expression, pattern->base_expression, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression_list) | 
					
						
							|  |  |  |         pattern->expression_list = node->expression_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression_list, pattern->expression_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ArrayAccessAST *node, ArrayAccessAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-23 14:38:41 +02:00
										 |  |  |     if (! pattern->base_expression) | 
					
						
							|  |  |  |         pattern->base_expression = node->base_expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->base_expression, pattern->base_expression, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     pattern->lbracket_token = node->lbracket_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression) | 
					
						
							|  |  |  |         pattern->expression = node->expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression, pattern->expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rbracket_token = node->rbracket_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(PostIncrDecrAST *node, PostIncrDecrAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-23 14:38:41 +02:00
										 |  |  |     if (! pattern->base_expression) | 
					
						
							|  |  |  |         pattern->base_expression = node->base_expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->base_expression, pattern->base_expression, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     pattern->incr_decr_token = node->incr_decr_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(MemberAccessAST *node, MemberAccessAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-23 14:38:41 +02:00
										 |  |  |     if (! pattern->base_expression) | 
					
						
							|  |  |  |         pattern->base_expression = node->base_expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->base_expression, pattern->base_expression, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     pattern->access_token = node->access_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->template_token = node->template_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->member_name) | 
					
						
							|  |  |  |         pattern->member_name = node->member_name; | 
					
						
							|  |  |  |     else if (! AST::match(node->member_name, pattern->member_name, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(TypeidExpressionAST *node, TypeidExpressionAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->typeid_token = node->typeid_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression) | 
					
						
							|  |  |  |         pattern->expression = node->expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression, pattern->expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(TypenameCallExpressionAST *node, TypenameCallExpressionAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->typename_token = node->typename_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->name) | 
					
						
							|  |  |  |         pattern->name = node->name; | 
					
						
							|  |  |  |     else if (! AST::match(node->name, pattern->name, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression_list) | 
					
						
							|  |  |  |         pattern->expression_list = node->expression_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression_list, pattern->expression_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(TypeConstructorCallAST *node, TypeConstructorCallAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->type_specifier_list) | 
					
						
							|  |  |  |         pattern->type_specifier_list = node->type_specifier_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->type_specifier_list, pattern->type_specifier_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression_list) | 
					
						
							|  |  |  |         pattern->expression_list = node->expression_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression_list, pattern->expression_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(PointerToMemberAST *node, PointerToMemberAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->global_scope_token = node->global_scope_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->nested_name_specifier_list) | 
					
						
							|  |  |  |         pattern->nested_name_specifier_list = node->nested_name_specifier_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->nested_name_specifier_list, pattern->nested_name_specifier_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->star_token = node->star_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->cv_qualifier_list) | 
					
						
							|  |  |  |         pattern->cv_qualifier_list = node->cv_qualifier_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->cv_qualifier_list, pattern->cv_qualifier_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(PointerAST *node, PointerAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->star_token = node->star_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->cv_qualifier_list) | 
					
						
							|  |  |  |         pattern->cv_qualifier_list = node->cv_qualifier_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->cv_qualifier_list, pattern->cv_qualifier_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ReferenceAST *node, ReferenceAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-23 12:11:33 +01:00
										 |  |  |     pattern->reference_token = node->reference_token; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(BreakStatementAST *node, BreakStatementAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->break_token = node->break_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->semicolon_token = node->semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ContinueStatementAST *node, ContinueStatementAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->continue_token = node->continue_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->semicolon_token = node->semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(GotoStatementAST *node, GotoStatementAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->goto_token = node->goto_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->identifier_token = node->identifier_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->semicolon_token = node->semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ReturnStatementAST *node, ReturnStatementAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->return_token = node->return_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression) | 
					
						
							|  |  |  |         pattern->expression = node->expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression, pattern->expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->semicolon_token = node->semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(SizeofExpressionAST *node, SizeofExpressionAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->sizeof_token = node->sizeof_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-25 12:15:38 +01:00
										 |  |  |     pattern->dot_dot_dot_token = node->dot_dot_dot_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression) | 
					
						
							|  |  |  |         pattern->expression = node->expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression, pattern->expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(NumericLiteralAST *node, NumericLiteralAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->literal_token = node->literal_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(BoolLiteralAST *node, BoolLiteralAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->literal_token = node->literal_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ThisExpressionAST *node, ThisExpressionAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->this_token = node->this_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(NestedExpressionAST *node, NestedExpressionAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression) | 
					
						
							|  |  |  |         pattern->expression = node->expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression, pattern->expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(StringLiteralAST *node, StringLiteralAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->literal_token = node->literal_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->next) | 
					
						
							|  |  |  |         pattern->next = node->next; | 
					
						
							|  |  |  |     else if (! AST::match(node->next, pattern->next, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(SwitchStatementAST *node, SwitchStatementAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->switch_token = node->switch_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->condition) | 
					
						
							|  |  |  |         pattern->condition = node->condition; | 
					
						
							|  |  |  |     else if (! AST::match(node->condition, pattern->condition, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->statement) | 
					
						
							|  |  |  |         pattern->statement = node->statement; | 
					
						
							|  |  |  |     else if (! AST::match(node->statement, pattern->statement, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(TemplateDeclarationAST *node, TemplateDeclarationAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->export_token = node->export_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->template_token = node->template_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->less_token = node->less_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->template_parameter_list) | 
					
						
							|  |  |  |         pattern->template_parameter_list = node->template_parameter_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->template_parameter_list, pattern->template_parameter_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->greater_token = node->greater_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->declaration) | 
					
						
							|  |  |  |         pattern->declaration = node->declaration; | 
					
						
							|  |  |  |     else if (! AST::match(node->declaration, pattern->declaration, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ThrowExpressionAST *node, ThrowExpressionAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->throw_token = node->throw_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression) | 
					
						
							|  |  |  |         pattern->expression = node->expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression, pattern->expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(TranslationUnitAST *node, TranslationUnitAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->declaration_list) | 
					
						
							|  |  |  |         pattern->declaration_list = node->declaration_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->declaration_list, pattern->declaration_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(TryBlockStatementAST *node, TryBlockStatementAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->try_token = node->try_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->statement) | 
					
						
							|  |  |  |         pattern->statement = node->statement; | 
					
						
							|  |  |  |     else if (! AST::match(node->statement, pattern->statement, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->catch_clause_list) | 
					
						
							|  |  |  |         pattern->catch_clause_list = node->catch_clause_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->catch_clause_list, pattern->catch_clause_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(CatchClauseAST *node, CatchClauseAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->catch_token = node->catch_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->exception_declaration) | 
					
						
							|  |  |  |         pattern->exception_declaration = node->exception_declaration; | 
					
						
							|  |  |  |     else if (! AST::match(node->exception_declaration, pattern->exception_declaration, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->statement) | 
					
						
							|  |  |  |         pattern->statement = node->statement; | 
					
						
							|  |  |  |     else if (! AST::match(node->statement, pattern->statement, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(TypeIdAST *node, TypeIdAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->type_specifier_list) | 
					
						
							|  |  |  |         pattern->type_specifier_list = node->type_specifier_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->type_specifier_list, pattern->type_specifier_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->declarator) | 
					
						
							|  |  |  |         pattern->declarator = node->declarator; | 
					
						
							|  |  |  |     else if (! AST::match(node->declarator, pattern->declarator, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(TypenameTypeParameterAST *node, TypenameTypeParameterAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->classkey_token = node->classkey_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-23 14:03:05 +01:00
										 |  |  |     pattern->dot_dot_dot_token = node->dot_dot_dot_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     if (! pattern->name) | 
					
						
							|  |  |  |         pattern->name = node->name; | 
					
						
							|  |  |  |     else if (! AST::match(node->name, pattern->name, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->equal_token = node->equal_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->type_id) | 
					
						
							|  |  |  |         pattern->type_id = node->type_id; | 
					
						
							|  |  |  |     else if (! AST::match(node->type_id, pattern->type_id, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(TemplateTypeParameterAST *node, TemplateTypeParameterAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->template_token = node->template_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->less_token = node->less_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->template_parameter_list) | 
					
						
							|  |  |  |         pattern->template_parameter_list = node->template_parameter_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->template_parameter_list, pattern->template_parameter_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->greater_token = node->greater_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->class_token = node->class_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-23 14:03:05 +01:00
										 |  |  |     pattern->dot_dot_dot_token = node->dot_dot_dot_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     if (! pattern->name) | 
					
						
							|  |  |  |         pattern->name = node->name; | 
					
						
							|  |  |  |     else if (! AST::match(node->name, pattern->name, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->equal_token = node->equal_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->type_id) | 
					
						
							|  |  |  |         pattern->type_id = node->type_id; | 
					
						
							|  |  |  |     else if (! AST::match(node->type_id, pattern->type_id, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(UnaryExpressionAST *node, UnaryExpressionAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->unary_op_token = node->unary_op_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression) | 
					
						
							|  |  |  |         pattern->expression = node->expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression, pattern->expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(UsingAST *node, UsingAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->using_token = node->using_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->typename_token = node->typename_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->name) | 
					
						
							|  |  |  |         pattern->name = node->name; | 
					
						
							|  |  |  |     else if (! AST::match(node->name, pattern->name, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->semicolon_token = node->semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(UsingDirectiveAST *node, UsingDirectiveAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->using_token = node->using_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->namespace_token = node->namespace_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->name) | 
					
						
							|  |  |  |         pattern->name = node->name; | 
					
						
							|  |  |  |     else if (! AST::match(node->name, pattern->name, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->semicolon_token = node->semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(WhileStatementAST *node, WhileStatementAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->while_token = node->while_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->condition) | 
					
						
							|  |  |  |         pattern->condition = node->condition; | 
					
						
							|  |  |  |     else if (! AST::match(node->condition, pattern->condition, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->statement) | 
					
						
							|  |  |  |         pattern->statement = node->statement; | 
					
						
							|  |  |  |     else if (! AST::match(node->statement, pattern->statement, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ObjCClassForwardDeclarationAST *node, ObjCClassForwardDeclarationAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->attribute_list) | 
					
						
							|  |  |  |         pattern->attribute_list = node->attribute_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->attribute_list, pattern->attribute_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->class_token = node->class_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->identifier_list) | 
					
						
							|  |  |  |         pattern->identifier_list = node->identifier_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->identifier_list, pattern->identifier_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->semicolon_token = node->semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ObjCClassDeclarationAST *node, ObjCClassDeclarationAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->attribute_list) | 
					
						
							|  |  |  |         pattern->attribute_list = node->attribute_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->attribute_list, pattern->attribute_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->interface_token = node->interface_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->implementation_token = node->implementation_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->class_name) | 
					
						
							|  |  |  |         pattern->class_name = node->class_name; | 
					
						
							|  |  |  |     else if (! AST::match(node->class_name, pattern->class_name, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->category_name) | 
					
						
							|  |  |  |         pattern->category_name = node->category_name; | 
					
						
							|  |  |  |     else if (! AST::match(node->category_name, pattern->category_name, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->colon_token = node->colon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->superclass) | 
					
						
							|  |  |  |         pattern->superclass = node->superclass; | 
					
						
							|  |  |  |     else if (! AST::match(node->superclass, pattern->superclass, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->protocol_refs) | 
					
						
							|  |  |  |         pattern->protocol_refs = node->protocol_refs; | 
					
						
							|  |  |  |     else if (! AST::match(node->protocol_refs, pattern->protocol_refs, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->inst_vars_decl) | 
					
						
							|  |  |  |         pattern->inst_vars_decl = node->inst_vars_decl; | 
					
						
							|  |  |  |     else if (! AST::match(node->inst_vars_decl, pattern->inst_vars_decl, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->member_declaration_list) | 
					
						
							|  |  |  |         pattern->member_declaration_list = node->member_declaration_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->member_declaration_list, pattern->member_declaration_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->end_token = node->end_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ObjCProtocolForwardDeclarationAST *node, ObjCProtocolForwardDeclarationAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->attribute_list) | 
					
						
							|  |  |  |         pattern->attribute_list = node->attribute_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->attribute_list, pattern->attribute_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->protocol_token = node->protocol_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->identifier_list) | 
					
						
							|  |  |  |         pattern->identifier_list = node->identifier_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->identifier_list, pattern->identifier_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->semicolon_token = node->semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ObjCProtocolDeclarationAST *node, ObjCProtocolDeclarationAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->attribute_list) | 
					
						
							|  |  |  |         pattern->attribute_list = node->attribute_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->attribute_list, pattern->attribute_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->protocol_token = node->protocol_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->name) | 
					
						
							|  |  |  |         pattern->name = node->name; | 
					
						
							|  |  |  |     else if (! AST::match(node->name, pattern->name, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->protocol_refs) | 
					
						
							|  |  |  |         pattern->protocol_refs = node->protocol_refs; | 
					
						
							|  |  |  |     else if (! AST::match(node->protocol_refs, pattern->protocol_refs, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->member_declaration_list) | 
					
						
							|  |  |  |         pattern->member_declaration_list = node->member_declaration_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->member_declaration_list, pattern->member_declaration_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->end_token = node->end_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ObjCProtocolRefsAST *node, ObjCProtocolRefsAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->less_token = node->less_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->identifier_list) | 
					
						
							|  |  |  |         pattern->identifier_list = node->identifier_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->identifier_list, pattern->identifier_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->greater_token = node->greater_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ObjCMessageArgumentAST *node, ObjCMessageArgumentAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->parameter_value_expression) | 
					
						
							|  |  |  |         pattern->parameter_value_expression = node->parameter_value_expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->parameter_value_expression, pattern->parameter_value_expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ObjCMessageExpressionAST *node, ObjCMessageExpressionAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lbracket_token = node->lbracket_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->receiver_expression) | 
					
						
							|  |  |  |         pattern->receiver_expression = node->receiver_expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->receiver_expression, pattern->receiver_expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->selector) | 
					
						
							|  |  |  |         pattern->selector = node->selector; | 
					
						
							|  |  |  |     else if (! AST::match(node->selector, pattern->selector, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->argument_list) | 
					
						
							|  |  |  |         pattern->argument_list = node->argument_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->argument_list, pattern->argument_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rbracket_token = node->rbracket_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ObjCProtocolExpressionAST *node, ObjCProtocolExpressionAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->protocol_token = node->protocol_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->identifier_token = node->identifier_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ObjCTypeNameAST *node, ObjCTypeNameAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-04 12:03:34 +01:00
										 |  |  |     pattern->type_qualifier_token = node->type_qualifier_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     if (! pattern->type_id) | 
					
						
							|  |  |  |         pattern->type_id = node->type_id; | 
					
						
							|  |  |  |     else if (! AST::match(node->type_id, pattern->type_id, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ObjCEncodeExpressionAST *node, ObjCEncodeExpressionAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->encode_token = node->encode_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->type_name) | 
					
						
							|  |  |  |         pattern->type_name = node->type_name; | 
					
						
							|  |  |  |     else if (! AST::match(node->type_name, pattern->type_name, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ObjCSelectorExpressionAST *node, ObjCSelectorExpressionAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->selector_token = node->selector_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->selector) | 
					
						
							|  |  |  |         pattern->selector = node->selector; | 
					
						
							|  |  |  |     else if (! AST::match(node->selector, pattern->selector, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ObjCInstanceVariablesDeclarationAST *node, ObjCInstanceVariablesDeclarationAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lbrace_token = node->lbrace_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->instance_variable_list) | 
					
						
							|  |  |  |         pattern->instance_variable_list = node->instance_variable_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->instance_variable_list, pattern->instance_variable_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rbrace_token = node->rbrace_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ObjCVisibilityDeclarationAST *node, ObjCVisibilityDeclarationAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->visibility_token = node->visibility_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ObjCPropertyAttributeAST *node, ObjCPropertyAttributeAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->attribute_identifier_token = node->attribute_identifier_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->equals_token = node->equals_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->method_selector) | 
					
						
							|  |  |  |         pattern->method_selector = node->method_selector; | 
					
						
							|  |  |  |     else if (! AST::match(node->method_selector, pattern->method_selector, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ObjCPropertyDeclarationAST *node, ObjCPropertyDeclarationAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->attribute_list) | 
					
						
							|  |  |  |         pattern->attribute_list = node->attribute_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->attribute_list, pattern->attribute_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->property_token = node->property_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->property_attribute_list) | 
					
						
							|  |  |  |         pattern->property_attribute_list = node->property_attribute_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->property_attribute_list, pattern->property_attribute_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->simple_declaration) | 
					
						
							|  |  |  |         pattern->simple_declaration = node->simple_declaration; | 
					
						
							|  |  |  |     else if (! AST::match(node->simple_declaration, pattern->simple_declaration, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ObjCMessageArgumentDeclarationAST *node, ObjCMessageArgumentDeclarationAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->type_name) | 
					
						
							|  |  |  |         pattern->type_name = node->type_name; | 
					
						
							|  |  |  |     else if (! AST::match(node->type_name, pattern->type_name, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->attribute_list) | 
					
						
							|  |  |  |         pattern->attribute_list = node->attribute_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->attribute_list, pattern->attribute_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-08 09:34:51 +01:00
										 |  |  |     if (! pattern->param_name) | 
					
						
							|  |  |  |         pattern->param_name = node->param_name; | 
					
						
							|  |  |  |     else if (! AST::match(node->param_name, pattern->param_name, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ObjCMethodPrototypeAST *node, ObjCMethodPrototypeAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->method_type_token = node->method_type_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->type_name) | 
					
						
							|  |  |  |         pattern->type_name = node->type_name; | 
					
						
							|  |  |  |     else if (! AST::match(node->type_name, pattern->type_name, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->selector) | 
					
						
							|  |  |  |         pattern->selector = node->selector; | 
					
						
							|  |  |  |     else if (! AST::match(node->selector, pattern->selector, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->argument_list) | 
					
						
							|  |  |  |         pattern->argument_list = node->argument_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->argument_list, pattern->argument_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->dot_dot_dot_token = node->dot_dot_dot_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->attribute_list) | 
					
						
							|  |  |  |         pattern->attribute_list = node->attribute_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->attribute_list, pattern->attribute_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ObjCMethodDeclarationAST *node, ObjCMethodDeclarationAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->method_prototype) | 
					
						
							|  |  |  |         pattern->method_prototype = node->method_prototype; | 
					
						
							|  |  |  |     else if (! AST::match(node->method_prototype, pattern->method_prototype, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->function_body) | 
					
						
							|  |  |  |         pattern->function_body = node->function_body; | 
					
						
							|  |  |  |     else if (! AST::match(node->function_body, pattern->function_body, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->semicolon_token = node->semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ObjCSynthesizedPropertyAST *node, ObjCSynthesizedPropertyAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-04 12:03:34 +01:00
										 |  |  |     pattern->property_identifier_token = node->property_identifier_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     pattern->equals_token = node->equals_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-04 12:03:34 +01:00
										 |  |  |     pattern->alias_identifier_token = node->alias_identifier_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ObjCSynthesizedPropertiesDeclarationAST *node, ObjCSynthesizedPropertiesDeclarationAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->synthesized_token = node->synthesized_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->property_identifier_list) | 
					
						
							|  |  |  |         pattern->property_identifier_list = node->property_identifier_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->property_identifier_list, pattern->property_identifier_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->semicolon_token = node->semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ObjCDynamicPropertiesDeclarationAST *node, ObjCDynamicPropertiesDeclarationAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->dynamic_token = node->dynamic_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->property_identifier_list) | 
					
						
							|  |  |  |         pattern->property_identifier_list = node->property_identifier_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->property_identifier_list, pattern->property_identifier_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->semicolon_token = node->semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ObjCFastEnumerationAST *node, ObjCFastEnumerationAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->for_token = node->for_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->type_specifier_list) | 
					
						
							|  |  |  |         pattern->type_specifier_list = node->type_specifier_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->type_specifier_list, pattern->type_specifier_list, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->declarator) | 
					
						
							|  |  |  |         pattern->declarator = node->declarator; | 
					
						
							|  |  |  |     else if (! AST::match(node->declarator, pattern->declarator, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->initializer) | 
					
						
							|  |  |  |         pattern->initializer = node->initializer; | 
					
						
							|  |  |  |     else if (! AST::match(node->initializer, pattern->initializer, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->in_token = node->in_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->fast_enumeratable_expression) | 
					
						
							|  |  |  |         pattern->fast_enumeratable_expression = node->fast_enumeratable_expression; | 
					
						
							|  |  |  |     else if (! AST::match(node->fast_enumeratable_expression, pattern->fast_enumeratable_expression, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-09 18:00:25 +01:00
										 |  |  |     if (! pattern->statement) | 
					
						
							|  |  |  |         pattern->statement = node->statement; | 
					
						
							|  |  |  |     else if (! AST::match(node->statement, pattern->statement, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | bool ASTMatcher::match(ObjCSynchronizedStatementAST *node, ObjCSynchronizedStatementAST *pattern) | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->synchronized_token = node->synchronized_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->synchronized_object) | 
					
						
							|  |  |  |         pattern->synchronized_object = node->synchronized_object; | 
					
						
							|  |  |  |     else if (! AST::match(node->synchronized_object, pattern->synchronized_object, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->statement) | 
					
						
							|  |  |  |         pattern->statement = node->statement; | 
					
						
							|  |  |  |     else if (! AST::match(node->statement, pattern->statement, this)) | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  |         return false; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2009-11-13 11:35:19 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-24 12:54:25 +01:00
										 |  |  | bool ASTMatcher::match(LambdaExpressionAST *node, LambdaExpressionAST *pattern) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->lambda_introducer) | 
					
						
							|  |  |  |         pattern->lambda_introducer = node->lambda_introducer; | 
					
						
							|  |  |  |     else if (! AST::match(node->lambda_introducer, pattern->lambda_introducer, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->lambda_declarator) | 
					
						
							|  |  |  |         pattern->lambda_declarator = node->lambda_declarator; | 
					
						
							|  |  |  |     else if (! AST::match(node->lambda_declarator, pattern->lambda_declarator, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->statement) | 
					
						
							|  |  |  |         pattern->statement = node->statement; | 
					
						
							|  |  |  |     else if (! AST::match(node->statement, pattern->statement, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | bool ASTMatcher::match(LambdaIntroducerAST *node, LambdaIntroducerAST *pattern) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lbracket_token = node->lbracket_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->lambda_capture) | 
					
						
							|  |  |  |         pattern->lambda_capture = node->lambda_capture; | 
					
						
							|  |  |  |     else if (! AST::match(node->lambda_capture, pattern->lambda_capture, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->rbracket_token = node->rbracket_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | bool ASTMatcher::match(LambdaCaptureAST *node, LambdaCaptureAST *pattern) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->capture_list) | 
					
						
							|  |  |  |         pattern->capture_list = node->capture_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->capture_list, pattern->capture_list, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | bool ASTMatcher::match(CaptureAST *node, CaptureAST *pattern) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | bool ASTMatcher::match(LambdaDeclaratorAST *node, LambdaDeclaratorAST *pattern) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lparen_token = node->lparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->parameter_declaration_clause) | 
					
						
							|  |  |  |         pattern->parameter_declaration_clause = node->parameter_declaration_clause; | 
					
						
							|  |  |  |     else if (! AST::match(node->parameter_declaration_clause, pattern->parameter_declaration_clause, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->rparen_token = node->rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->attributes) | 
					
						
							|  |  |  |         pattern->attributes = node->attributes; | 
					
						
							|  |  |  |     else if (! AST::match(node->attributes, pattern->attributes, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->mutable_token = node->mutable_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->exception_specification) | 
					
						
							|  |  |  |         pattern->exception_specification = node->exception_specification; | 
					
						
							|  |  |  |     else if (! AST::match(node->exception_specification, pattern->exception_specification, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->trailing_return_type) | 
					
						
							|  |  |  |         pattern->trailing_return_type = node->trailing_return_type; | 
					
						
							|  |  |  |     else if (! AST::match(node->trailing_return_type, pattern->trailing_return_type, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | bool ASTMatcher::match(TrailingReturnTypeAST *node, TrailingReturnTypeAST *pattern) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->arrow_token = node->arrow_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->attributes) | 
					
						
							|  |  |  |         pattern->attributes = node->attributes; | 
					
						
							|  |  |  |     else if (! AST::match(node->attributes, pattern->attributes, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->type_specifiers) | 
					
						
							|  |  |  |         pattern->type_specifiers = node->type_specifiers; | 
					
						
							|  |  |  |     else if (! AST::match(node->type_specifiers, pattern->type_specifiers, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->declarator) | 
					
						
							|  |  |  |         pattern->declarator = node->declarator; | 
					
						
							|  |  |  |     else if (! AST::match(node->declarator, pattern->declarator, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-25 12:15:38 +01:00
										 |  |  | bool ASTMatcher::match(BracedInitializerAST *node, BracedInitializerAST *pattern) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     (void) node; | 
					
						
							|  |  |  |     (void) pattern; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->lbrace_token = node->lbrace_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (! pattern->expression_list) | 
					
						
							|  |  |  |         pattern->expression_list = node->expression_list; | 
					
						
							|  |  |  |     else if (! AST::match(node->expression_list, pattern->expression_list, this)) | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->comma_token = node->comma_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pattern->rbrace_token = node->rbrace_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 |