| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | /**************************************************************************
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +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). | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-06-17 00:01:27 +10:00
										 |  |  | ** Contact: Nokia Corporation (qt-info@nokia.com) | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | ** Commercial Usage | 
					
						
							| 
									
										
										
										
											2008-12-02 14:17:16 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | ** 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. | 
					
						
							| 
									
										
										
										
											2008-12-02 14:17:16 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | ** GNU Lesser General Public License Usage | 
					
						
							| 
									
										
										
										
											2008-12-02 14:17:16 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | ** 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.
 | 
					
						
							| 
									
										
										
										
											2008-12-02 14:17:16 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | ** If you are unsure which license is appropriate for your use, please | 
					
						
							| 
									
										
										
										
											2009-08-14 09:30:56 +02:00
										 |  |  | ** contact the sales department at http://qt.nokia.com/contact.
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2009-02-25 09:15:00 +01:00
										 |  |  | **************************************************************************/ | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | // Copyright (c) 2008 Roberto Raggi <roberto.raggi@gmail.com>
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
					
						
							|  |  |  | // of this software and associated documentation files (the "Software"), to deal
 | 
					
						
							|  |  |  | // in the Software without restriction, including without limitation the rights
 | 
					
						
							|  |  |  | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
					
						
							|  |  |  | // copies of the Software, and to permit persons to whom the Software is
 | 
					
						
							|  |  |  | // furnished to do so, subject to the following conditions:
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // The above copyright notice and this permission notice shall be included in
 | 
					
						
							|  |  |  | // all copies or substantial portions of the Software.
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
					
						
							|  |  |  | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
					
						
							|  |  |  | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
					
						
							|  |  |  | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
					
						
							|  |  |  | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
					
						
							|  |  |  | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | 
					
						
							|  |  |  | // THE SOFTWARE.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef CPLUSPLUS_AST_H
 | 
					
						
							|  |  |  | #define CPLUSPLUS_AST_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "CPlusPlusForwardDeclarations.h"
 | 
					
						
							|  |  |  | #include "ASTfwd.h"
 | 
					
						
							| 
									
										
										
										
											2008-12-22 13:09:26 +01:00
										 |  |  | #include "MemoryPool.h"
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-20 11:21:25 +02:00
										 |  |  | namespace CPlusPlus { | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-09 12:19:17 +01:00
										 |  |  | template <typename _Tp> | 
					
						
							| 
									
										
										
										
											2009-11-10 11:13:57 +01:00
										 |  |  | class CPLUSPLUS_EXPORT List: public Managed | 
					
						
							| 
									
										
										
										
											2009-02-09 12:19:17 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     List(const List &other); | 
					
						
							|  |  |  |     void operator =(const List &other); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     List() | 
					
						
							| 
									
										
										
										
											2009-10-21 17:01:40 +02:00
										 |  |  |         : value(_Tp()), next(0) | 
					
						
							| 
									
										
										
										
											2009-02-09 12:19:17 +01:00
										 |  |  |     { } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-10 14:24:32 +01:00
										 |  |  |     List(const _Tp &value) | 
					
						
							|  |  |  |         : value(value), next(0) | 
					
						
							|  |  |  |     { } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-10 11:13:57 +01:00
										 |  |  |     unsigned firstToken() const | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         if (value) | 
					
						
							|  |  |  |             return value->firstToken(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // ### assert(0);
 | 
					
						
							|  |  |  |         return 0; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     unsigned lastToken() const | 
					
						
							| 
									
										
										
										
											2010-02-04 16:31:29 +01:00
										 |  |  |     { | 
					
						
							|  |  |  |         _Tp lv = lastValue(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (lv) | 
					
						
							|  |  |  |             return lv->lastToken(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // ### assert(0);
 | 
					
						
							|  |  |  |         return 0; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     _Tp lastValue() const | 
					
						
							| 
									
										
										
										
											2009-11-10 11:13:57 +01:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2009-11-10 16:19:52 +01:00
										 |  |  |         _Tp lastValue = 0; | 
					
						
							| 
									
										
										
										
											2009-11-10 11:13:57 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |         for (const List *it = this; it; it = it->next) { | 
					
						
							|  |  |  |             if (it->value) | 
					
						
							| 
									
										
										
										
											2009-11-10 16:19:52 +01:00
										 |  |  |                 lastValue = it->value; | 
					
						
							| 
									
										
										
										
											2009-11-10 11:13:57 +01:00
										 |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-04 16:31:29 +01:00
										 |  |  |         return lastValue; | 
					
						
							| 
									
										
										
										
											2009-11-10 11:13:57 +01:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-03-17 14:35:48 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-09 12:19:17 +01:00
										 |  |  |     _Tp value; | 
					
						
							|  |  |  |     List *next; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-22 13:09:26 +01:00
										 |  |  | class CPLUSPLUS_EXPORT AST: public Managed | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     AST(const AST &other); | 
					
						
							|  |  |  |     void operator =(const AST &other); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     AST(); | 
					
						
							|  |  |  |     virtual ~AST(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     void accept(ASTVisitor *visitor); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     static void accept(AST *ast, ASTVisitor *visitor) | 
					
						
							|  |  |  |     { if (ast) ast->accept(visitor); } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-10 11:13:57 +01:00
										 |  |  |     template <typename _Tp> | 
					
						
							|  |  |  |     static void accept(List<_Tp> *it, ASTVisitor *visitor) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         for (; it; it = it->next) | 
					
						
							|  |  |  |             accept(it->value, visitor); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     static bool match(AST *ast, AST *pattern, ASTMatcher *matcher); | 
					
						
							|  |  |  |     bool match(AST *pattern, ASTMatcher *matcher); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     template <typename _Tp> | 
					
						
							|  |  |  |     static bool match(List<_Tp> *it, List<_Tp> *patternIt, ASTMatcher *matcher) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         while (it && patternIt) { | 
					
						
							|  |  |  |             if (! match(it->value, patternIt->value, matcher)) | 
					
						
							|  |  |  |                 return false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             it = it->next; | 
					
						
							|  |  |  |             patternIt = patternIt->next; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (! it && ! patternIt) | 
					
						
							|  |  |  |             return true; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const = 0; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual AST *clone(MemoryPool *pool) const = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  |     virtual AccessDeclarationAST *asAccessDeclaration() { return 0; } | 
					
						
							|  |  |  |     virtual ArrayAccessAST *asArrayAccess() { return 0; } | 
					
						
							|  |  |  |     virtual ArrayDeclaratorAST *asArrayDeclarator() { return 0; } | 
					
						
							|  |  |  |     virtual ArrayInitializerAST *asArrayInitializer() { return 0; } | 
					
						
							|  |  |  |     virtual AsmDefinitionAST *asAsmDefinition() { return 0; } | 
					
						
							|  |  |  |     virtual AttributeAST *asAttribute() { return 0; } | 
					
						
							|  |  |  |     virtual AttributeSpecifierAST *asAttributeSpecifier() { return 0; } | 
					
						
							|  |  |  |     virtual BaseSpecifierAST *asBaseSpecifier() { return 0; } | 
					
						
							|  |  |  |     virtual BinaryExpressionAST *asBinaryExpression() { return 0; } | 
					
						
							|  |  |  |     virtual BoolLiteralAST *asBoolLiteral() { return 0; } | 
					
						
							|  |  |  |     virtual BreakStatementAST *asBreakStatement() { return 0; } | 
					
						
							|  |  |  |     virtual CallAST *asCall() { return 0; } | 
					
						
							|  |  |  |     virtual CaseStatementAST *asCaseStatement() { return 0; } | 
					
						
							|  |  |  |     virtual CastExpressionAST *asCastExpression() { return 0; } | 
					
						
							|  |  |  |     virtual CatchClauseAST *asCatchClause() { return 0; } | 
					
						
							|  |  |  |     virtual ClassSpecifierAST *asClassSpecifier() { return 0; } | 
					
						
							| 
									
										
										
										
											2010-02-04 14:55:18 +01:00
										 |  |  |     virtual CompoundExpressionAST *asCompoundExpression() { return 0; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  |     virtual CompoundLiteralAST *asCompoundLiteral() { return 0; } | 
					
						
							|  |  |  |     virtual CompoundStatementAST *asCompoundStatement() { return 0; } | 
					
						
							|  |  |  |     virtual ConditionAST *asCondition() { return 0; } | 
					
						
							|  |  |  |     virtual ConditionalExpressionAST *asConditionalExpression() { return 0; } | 
					
						
							|  |  |  |     virtual ContinueStatementAST *asContinueStatement() { return 0; } | 
					
						
							|  |  |  |     virtual ConversionFunctionIdAST *asConversionFunctionId() { return 0; } | 
					
						
							|  |  |  |     virtual CoreDeclaratorAST *asCoreDeclarator() { return 0; } | 
					
						
							|  |  |  |     virtual CppCastExpressionAST *asCppCastExpression() { return 0; } | 
					
						
							|  |  |  |     virtual CtorInitializerAST *asCtorInitializer() { return 0; } | 
					
						
							|  |  |  |     virtual DeclarationAST *asDeclaration() { return 0; } | 
					
						
							|  |  |  |     virtual DeclarationStatementAST *asDeclarationStatement() { return 0; } | 
					
						
							|  |  |  |     virtual DeclaratorAST *asDeclarator() { return 0; } | 
					
						
							|  |  |  |     virtual DeclaratorIdAST *asDeclaratorId() { return 0; } | 
					
						
							|  |  |  |     virtual DeleteExpressionAST *asDeleteExpression() { return 0; } | 
					
						
							|  |  |  |     virtual DestructorNameAST *asDestructorName() { return 0; } | 
					
						
							|  |  |  |     virtual DoStatementAST *asDoStatement() { return 0; } | 
					
						
							|  |  |  |     virtual ElaboratedTypeSpecifierAST *asElaboratedTypeSpecifier() { return 0; } | 
					
						
							|  |  |  |     virtual EmptyDeclarationAST *asEmptyDeclaration() { return 0; } | 
					
						
							|  |  |  |     virtual EnumSpecifierAST *asEnumSpecifier() { return 0; } | 
					
						
							|  |  |  |     virtual EnumeratorAST *asEnumerator() { return 0; } | 
					
						
							|  |  |  |     virtual ExceptionDeclarationAST *asExceptionDeclaration() { return 0; } | 
					
						
							|  |  |  |     virtual ExceptionSpecificationAST *asExceptionSpecification() { return 0; } | 
					
						
							|  |  |  |     virtual ExpressionAST *asExpression() { return 0; } | 
					
						
							|  |  |  |     virtual ExpressionOrDeclarationStatementAST *asExpressionOrDeclarationStatement() { return 0; } | 
					
						
							|  |  |  |     virtual ExpressionStatementAST *asExpressionStatement() { return 0; } | 
					
						
							|  |  |  |     virtual ForStatementAST *asForStatement() { return 0; } | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ForeachStatementAST *asForeachStatement() { return 0; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  |     virtual FunctionDeclaratorAST *asFunctionDeclarator() { return 0; } | 
					
						
							|  |  |  |     virtual FunctionDefinitionAST *asFunctionDefinition() { return 0; } | 
					
						
							|  |  |  |     virtual GotoStatementAST *asGotoStatement() { return 0; } | 
					
						
							|  |  |  |     virtual IfStatementAST *asIfStatement() { return 0; } | 
					
						
							|  |  |  |     virtual LabeledStatementAST *asLabeledStatement() { return 0; } | 
					
						
							|  |  |  |     virtual LinkageBodyAST *asLinkageBody() { return 0; } | 
					
						
							|  |  |  |     virtual LinkageSpecificationAST *asLinkageSpecification() { return 0; } | 
					
						
							|  |  |  |     virtual MemInitializerAST *asMemInitializer() { return 0; } | 
					
						
							|  |  |  |     virtual MemberAccessAST *asMemberAccess() { return 0; } | 
					
						
							|  |  |  |     virtual NameAST *asName() { return 0; } | 
					
						
							|  |  |  |     virtual NamedTypeSpecifierAST *asNamedTypeSpecifier() { return 0; } | 
					
						
							|  |  |  |     virtual NamespaceAST *asNamespace() { return 0; } | 
					
						
							|  |  |  |     virtual NamespaceAliasDefinitionAST *asNamespaceAliasDefinition() { return 0; } | 
					
						
							|  |  |  |     virtual NestedDeclaratorAST *asNestedDeclarator() { return 0; } | 
					
						
							|  |  |  |     virtual NestedExpressionAST *asNestedExpression() { return 0; } | 
					
						
							|  |  |  |     virtual NestedNameSpecifierAST *asNestedNameSpecifier() { return 0; } | 
					
						
							| 
									
										
										
										
											2009-02-10 14:43:19 +01:00
										 |  |  |     virtual NewArrayDeclaratorAST *asNewArrayDeclarator() { return 0; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  |     virtual NewExpressionAST *asNewExpression() { return 0; } | 
					
						
							|  |  |  |     virtual NewInitializerAST *asNewInitializer() { return 0; } | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual NewPlacementAST *asNewPlacement() { return 0; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  |     virtual NewTypeIdAST *asNewTypeId() { return 0; } | 
					
						
							|  |  |  |     virtual NumericLiteralAST *asNumericLiteral() { return 0; } | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ObjCClassDeclarationAST *asObjCClassDeclaration() { return 0; } | 
					
						
							|  |  |  |     virtual ObjCClassForwardDeclarationAST *asObjCClassForwardDeclaration() { return 0; } | 
					
						
							|  |  |  |     virtual ObjCDynamicPropertiesDeclarationAST *asObjCDynamicPropertiesDeclaration() { return 0; } | 
					
						
							|  |  |  |     virtual ObjCEncodeExpressionAST *asObjCEncodeExpression() { return 0; } | 
					
						
							|  |  |  |     virtual ObjCFastEnumerationAST *asObjCFastEnumeration() { return 0; } | 
					
						
							|  |  |  |     virtual ObjCInstanceVariablesDeclarationAST *asObjCInstanceVariablesDeclaration() { return 0; } | 
					
						
							|  |  |  |     virtual ObjCMessageArgumentAST *asObjCMessageArgument() { return 0; } | 
					
						
							|  |  |  |     virtual ObjCMessageArgumentDeclarationAST *asObjCMessageArgumentDeclaration() { return 0; } | 
					
						
							|  |  |  |     virtual ObjCMessageExpressionAST *asObjCMessageExpression() { return 0; } | 
					
						
							|  |  |  |     virtual ObjCMethodDeclarationAST *asObjCMethodDeclaration() { return 0; } | 
					
						
							|  |  |  |     virtual ObjCMethodPrototypeAST *asObjCMethodPrototype() { return 0; } | 
					
						
							|  |  |  |     virtual ObjCPropertyAttributeAST *asObjCPropertyAttribute() { return 0; } | 
					
						
							|  |  |  |     virtual ObjCPropertyDeclarationAST *asObjCPropertyDeclaration() { return 0; } | 
					
						
							|  |  |  |     virtual ObjCProtocolDeclarationAST *asObjCProtocolDeclaration() { return 0; } | 
					
						
							|  |  |  |     virtual ObjCProtocolExpressionAST *asObjCProtocolExpression() { return 0; } | 
					
						
							|  |  |  |     virtual ObjCProtocolForwardDeclarationAST *asObjCProtocolForwardDeclaration() { return 0; } | 
					
						
							|  |  |  |     virtual ObjCProtocolRefsAST *asObjCProtocolRefs() { return 0; } | 
					
						
							|  |  |  |     virtual ObjCSelectorAST *asObjCSelector() { return 0; } | 
					
						
							|  |  |  |     virtual ObjCSelectorArgumentAST *asObjCSelectorArgument() { return 0; } | 
					
						
							|  |  |  |     virtual ObjCSelectorExpressionAST *asObjCSelectorExpression() { return 0; } | 
					
						
							|  |  |  |     virtual ObjCSynchronizedStatementAST *asObjCSynchronizedStatement() { return 0; } | 
					
						
							|  |  |  |     virtual ObjCSynthesizedPropertiesDeclarationAST *asObjCSynthesizedPropertiesDeclaration() { return 0; } | 
					
						
							|  |  |  |     virtual ObjCSynthesizedPropertyAST *asObjCSynthesizedProperty() { return 0; } | 
					
						
							|  |  |  |     virtual ObjCTypeNameAST *asObjCTypeName() { return 0; } | 
					
						
							|  |  |  |     virtual ObjCVisibilityDeclarationAST *asObjCVisibilityDeclaration() { return 0; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  |     virtual OperatorAST *asOperator() { return 0; } | 
					
						
							|  |  |  |     virtual OperatorFunctionIdAST *asOperatorFunctionId() { return 0; } | 
					
						
							|  |  |  |     virtual ParameterDeclarationAST *asParameterDeclaration() { return 0; } | 
					
						
							|  |  |  |     virtual ParameterDeclarationClauseAST *asParameterDeclarationClause() { return 0; } | 
					
						
							|  |  |  |     virtual PointerAST *asPointer() { return 0; } | 
					
						
							|  |  |  |     virtual PointerToMemberAST *asPointerToMember() { return 0; } | 
					
						
							|  |  |  |     virtual PostIncrDecrAST *asPostIncrDecr() { return 0; } | 
					
						
							|  |  |  |     virtual PostfixAST *asPostfix() { return 0; } | 
					
						
							|  |  |  |     virtual PostfixDeclaratorAST *asPostfixDeclarator() { return 0; } | 
					
						
							|  |  |  |     virtual PostfixExpressionAST *asPostfixExpression() { return 0; } | 
					
						
							|  |  |  |     virtual PtrOperatorAST *asPtrOperator() { return 0; } | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  |     virtual QtEnumDeclarationAST *asQtEnumDeclaration() { return 0; } | 
					
						
							|  |  |  |     virtual QtFlagsDeclarationAST *asQtFlagsDeclaration() { return 0; } | 
					
						
							| 
									
										
										
										
											2010-03-16 17:29:40 +01:00
										 |  |  |     virtual QtInterfaceNameAST *asQtInterfaceName() { return 0; } | 
					
						
							|  |  |  |     virtual QtInterfacesDeclarationAST *asQtInterfacesDeclaration() { return 0; } | 
					
						
							| 
									
										
										
										
											2009-11-30 16:30:21 +01:00
										 |  |  |     virtual QtMemberDeclarationAST *asQtMemberDeclaration() { return 0; } | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual QtMethodAST *asQtMethod() { return 0; } | 
					
						
							| 
									
										
										
										
											2010-03-17 14:35:48 +01:00
										 |  |  |     virtual QtObjectTagAST *asQtObjectTag() { return 0; } | 
					
						
							|  |  |  |     virtual QtPrivateSlotAST *asQtPrivateSlot() { return 0; } | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  |     virtual QtPropertyDeclarationAST *asQtPropertyDeclaration() { return 0; } | 
					
						
							| 
									
										
										
										
											2010-02-06 15:47:46 +01:00
										 |  |  |     virtual QtPropertyDeclarationItemAST *asQtPropertyDeclarationItem() { return 0; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  |     virtual QualifiedNameAST *asQualifiedName() { return 0; } | 
					
						
							|  |  |  |     virtual ReferenceAST *asReference() { return 0; } | 
					
						
							|  |  |  |     virtual ReturnStatementAST *asReturnStatement() { return 0; } | 
					
						
							|  |  |  |     virtual SimpleDeclarationAST *asSimpleDeclaration() { return 0; } | 
					
						
							|  |  |  |     virtual SimpleNameAST *asSimpleName() { return 0; } | 
					
						
							|  |  |  |     virtual SimpleSpecifierAST *asSimpleSpecifier() { return 0; } | 
					
						
							|  |  |  |     virtual SizeofExpressionAST *asSizeofExpression() { return 0; } | 
					
						
							|  |  |  |     virtual SpecifierAST *asSpecifier() { return 0; } | 
					
						
							|  |  |  |     virtual StatementAST *asStatement() { return 0; } | 
					
						
							|  |  |  |     virtual StringLiteralAST *asStringLiteral() { return 0; } | 
					
						
							|  |  |  |     virtual SwitchStatementAST *asSwitchStatement() { return 0; } | 
					
						
							|  |  |  |     virtual TemplateDeclarationAST *asTemplateDeclaration() { return 0; } | 
					
						
							|  |  |  |     virtual TemplateIdAST *asTemplateId() { return 0; } | 
					
						
							|  |  |  |     virtual TemplateTypeParameterAST *asTemplateTypeParameter() { return 0; } | 
					
						
							|  |  |  |     virtual ThisExpressionAST *asThisExpression() { return 0; } | 
					
						
							|  |  |  |     virtual ThrowExpressionAST *asThrowExpression() { return 0; } | 
					
						
							|  |  |  |     virtual TranslationUnitAST *asTranslationUnit() { return 0; } | 
					
						
							|  |  |  |     virtual TryBlockStatementAST *asTryBlockStatement() { return 0; } | 
					
						
							|  |  |  |     virtual TypeConstructorCallAST *asTypeConstructorCall() { return 0; } | 
					
						
							|  |  |  |     virtual TypeIdAST *asTypeId() { return 0; } | 
					
						
							|  |  |  |     virtual TypeidExpressionAST *asTypeidExpression() { return 0; } | 
					
						
							|  |  |  |     virtual TypenameCallExpressionAST *asTypenameCallExpression() { return 0; } | 
					
						
							|  |  |  |     virtual TypenameTypeParameterAST *asTypenameTypeParameter() { return 0; } | 
					
						
							|  |  |  |     virtual TypeofSpecifierAST *asTypeofSpecifier() { return 0; } | 
					
						
							|  |  |  |     virtual UnaryExpressionAST *asUnaryExpression() { return 0; } | 
					
						
							|  |  |  |     virtual UsingAST *asUsing() { return 0; } | 
					
						
							|  |  |  |     virtual UsingDirectiveAST *asUsingDirective() { return 0; } | 
					
						
							|  |  |  |     virtual WhileStatementAST *asWhileStatement() { return 0; } | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor) = 0; | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *) = 0; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | class CPLUSPLUS_EXPORT StatementAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     virtual StatementAST *asStatement() { return this; } | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual StatementAST *clone(MemoryPool *pool) const = 0; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ExpressionAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     virtual ExpressionAST *asExpression() { return this; } | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual ExpressionAST *clone(MemoryPool *pool) const = 0; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT DeclarationAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     virtual DeclarationAST *asDeclaration() { return this; } | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual DeclarationAST *clone(MemoryPool *pool) const = 0; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT NameAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: // annotations
 | 
					
						
							| 
									
										
										
										
											2009-12-01 12:46:15 +01:00
										 |  |  |     const Name *name; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     virtual NameAST *asName() { return this; } | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual NameAST *clone(MemoryPool *pool) const = 0; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | class CPLUSPLUS_EXPORT SpecifierAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2009-01-07 17:50:48 +01:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual SpecifierAST *asSpecifier() { return this; } | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual SpecifierAST *clone(MemoryPool *pool) const = 0; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | class CPLUSPLUS_EXPORT PtrOperatorAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     virtual PtrOperatorAST *asPtrOperator() { return this; } | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual PtrOperatorAST *clone(MemoryPool *pool) const = 0; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT PostfixAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     virtual PostfixAST *asPostfix() { return this; } | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual PostfixAST *clone(MemoryPool *pool) const = 0; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT CoreDeclaratorAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     virtual CoreDeclaratorAST *asCoreDeclarator() { return this; } | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual CoreDeclaratorAST *clone(MemoryPool *pool) const = 0; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT PostfixDeclaratorAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     virtual PostfixDeclaratorAST *asPostfixDeclarator() { return this; } | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual PostfixDeclaratorAST *clone(MemoryPool *pool) const = 0; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 17:43:40 +01:00
										 |  |  | class CPLUSPLUS_EXPORT ObjCSelectorArgumentAST: public AST | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-02-23 17:43:40 +01:00
										 |  |  | public: | 
					
						
							|  |  |  |     unsigned name_token; | 
					
						
							|  |  |  |     unsigned colon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     virtual ObjCSelectorArgumentAST *asObjCSelectorArgument() { return this; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     virtual ObjCSelectorArgumentAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							|  |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ObjCSelectorAST: public NameAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     ObjCSelectorArgumentListAST *selector_argument_list; | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     virtual ObjCSelectorAST *asObjCSelector() { return this; } | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 17:43:40 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     virtual ObjCSelectorAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							|  |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-11-16 13:38:37 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | class CPLUSPLUS_EXPORT SimpleSpecifierAST: public SpecifierAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned specifier_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual SimpleSpecifierAST *asSimpleSpecifier() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual SimpleSpecifierAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT AttributeSpecifierAST: public SpecifierAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned attribute_token; | 
					
						
							|  |  |  |     unsigned first_lparen_token; | 
					
						
							|  |  |  |     unsigned second_lparen_token; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     AttributeListAST *attribute_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     unsigned first_rparen_token; | 
					
						
							|  |  |  |     unsigned second_rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual AttributeSpecifierAST *asAttributeSpecifier() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual AttributeSpecifierAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT AttributeAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned identifier_token; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     unsigned tag_token; | 
					
						
							|  |  |  |     ExpressionListAST *expression_list; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual AttributeAST *asAttribute() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual AttributeAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT TypeofSpecifierAST: public SpecifierAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned typeof_token; | 
					
						
							| 
									
										
										
										
											2009-05-11 16:34:35 +02:00
										 |  |  |     unsigned lparen_token; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     ExpressionAST *expression; | 
					
						
							| 
									
										
										
										
											2009-05-11 16:34:35 +02:00
										 |  |  |     unsigned rparen_token; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual TypeofSpecifierAST *asTypeofSpecifier() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual TypeofSpecifierAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT DeclaratorAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     SpecifierListAST *attribute_list; | 
					
						
							|  |  |  |     PtrOperatorListAST *ptr_operator_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     CoreDeclaratorAST *core_declarator; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     PostfixDeclaratorListAST *postfix_declarator_list; | 
					
						
							|  |  |  |     SpecifierListAST *post_attribute_list; | 
					
						
							| 
									
										
										
										
											2009-05-11 16:34:35 +02:00
										 |  |  |     unsigned equals_token; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     ExpressionAST *initializer; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual DeclaratorAST *asDeclarator() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual DeclaratorAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT SimpleDeclarationAST: public DeclarationAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-03-25 11:50:17 +01:00
										 |  |  |     unsigned qt_invokable_token; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     SpecifierListAST *decl_specifier_list; | 
					
						
							|  |  |  |     DeclaratorListAST *declarator_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     unsigned semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-09 12:19:17 +01:00
										 |  |  | public: | 
					
						
							|  |  |  |     List<Declaration *> *symbols; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual SimpleDeclarationAST *asSimpleDeclaration() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual SimpleDeclarationAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT EmptyDeclarationAST: public DeclarationAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual EmptyDeclarationAST *asEmptyDeclaration() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual EmptyDeclarationAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT AccessDeclarationAST: public DeclarationAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned access_specifier_token; | 
					
						
							|  |  |  |     unsigned slots_token; | 
					
						
							|  |  |  |     unsigned colon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual AccessDeclarationAST *asAccessDeclaration() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual AccessDeclarationAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-17 14:35:48 +01:00
										 |  |  | class CPLUSPLUS_EXPORT QtObjectTagAST: public DeclarationAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned q_object_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     virtual QtObjectTagAST *asQtObjectTag() { return this; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     virtual QtObjectTagAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							|  |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT QtPrivateSlotAST: public DeclarationAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned q_private_slot_token; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     unsigned dptr_token; | 
					
						
							|  |  |  |     unsigned dptr_lparen_token; | 
					
						
							|  |  |  |     unsigned dptr_rparen_token; | 
					
						
							|  |  |  |     unsigned comma_token; | 
					
						
							|  |  |  |     SpecifierListAST *type_specifiers; | 
					
						
							|  |  |  |     DeclaratorAST *declarator; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     virtual QtPrivateSlotAST *asQtPrivateSlot() { return this; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     virtual QtPrivateSlotAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							|  |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-06 15:47:46 +01:00
										 |  |  | class QtPropertyDeclarationItemAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned item_name_token; | 
					
						
							| 
									
										
										
										
											2010-02-16 16:54:39 +01:00
										 |  |  |     ExpressionAST *expression; | 
					
						
							| 
									
										
										
										
											2010-02-06 15:47:46 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     virtual QtPropertyDeclarationItemAST *asQtPropertyDeclarationItem() { return this; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-16 16:54:39 +01:00
										 |  |  |     virtual QtPropertyDeclarationItemAST *clone(MemoryPool *pool) const; | 
					
						
							| 
									
										
										
										
											2010-02-06 15:47:46 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							|  |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  | class CPLUSPLUS_EXPORT QtPropertyDeclarationAST: public DeclarationAST | 
					
						
							| 
									
										
										
										
											2010-01-19 15:26:08 +10:00
										 |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned property_specifier_token; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  |     ExpressionAST *type_id; | 
					
						
							| 
									
										
										
										
											2010-02-17 16:25:12 +01:00
										 |  |  |     NameAST *property_name; | 
					
						
							| 
									
										
										
										
											2010-02-06 15:47:46 +01:00
										 |  |  |     QtPropertyDeclarationItemListAST *property_declaration_items; | 
					
						
							| 
									
										
										
										
											2010-01-19 15:26:08 +10:00
										 |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  |     virtual QtPropertyDeclarationAST *asQtPropertyDeclaration() { return this; } | 
					
						
							| 
									
										
										
										
											2010-01-19 15:26:08 +10:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  |     virtual QtPropertyDeclarationAST *clone(MemoryPool *pool) const; | 
					
						
							| 
									
										
										
										
											2010-02-03 13:21:08 +10:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-19 15:26:08 +10:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							|  |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  | class CPLUSPLUS_EXPORT QtEnumDeclarationAST: public DeclarationAST | 
					
						
							| 
									
										
										
										
											2010-01-19 15:26:08 +10:00
										 |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned enum_specifier_token; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  |     NameListAST *enumerator_list; | 
					
						
							| 
									
										
										
										
											2010-01-19 15:26:08 +10:00
										 |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  |     virtual QtEnumDeclarationAST *asQtEnumDeclaration() { return this; } | 
					
						
							| 
									
										
										
										
											2010-01-19 15:26:08 +10:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  |     virtual QtEnumDeclarationAST *clone(MemoryPool *pool) const; | 
					
						
							| 
									
										
										
										
											2010-02-03 13:21:08 +10:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-19 15:26:08 +10:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							|  |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  | class CPLUSPLUS_EXPORT QtFlagsDeclarationAST: public DeclarationAST | 
					
						
							| 
									
										
										
										
											2010-01-19 15:26:08 +10:00
										 |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned flags_specifier_token; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							| 
									
										
										
										
											2010-02-06 11:38:54 +01:00
										 |  |  |     NameListAST *flag_enums_list; | 
					
						
							| 
									
										
										
										
											2010-01-19 15:26:08 +10:00
										 |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  |     virtual QtFlagsDeclarationAST *asQtFlagsDeclaration() { return this; } | 
					
						
							| 
									
										
										
										
											2010-01-19 15:26:08 +10:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  |     virtual QtFlagsDeclarationAST *clone(MemoryPool *pool) const; | 
					
						
							| 
									
										
										
										
											2010-02-03 13:21:08 +10:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-19 15:26:08 +10:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							|  |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-16 17:29:40 +01:00
										 |  |  | class CPLUSPLUS_EXPORT QtInterfaceNameAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     NameAST *interface_name; | 
					
						
							|  |  |  |     NameListAST *constraint_list; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     virtual QtInterfaceNameAST *asQtInterfaceName() { return this; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     virtual QtInterfaceNameAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							|  |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT QtInterfacesDeclarationAST: public DeclarationAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned interfaces_token; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     QtInterfaceNameListAST *interface_name_list; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     virtual QtInterfacesDeclarationAST *asQtInterfacesDeclaration() { return this; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     virtual QtInterfacesDeclarationAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							|  |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | class CPLUSPLUS_EXPORT AsmDefinitionAST: public DeclarationAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned asm_token; | 
					
						
							| 
									
										
										
										
											2009-02-05 11:37:51 +01:00
										 |  |  |     unsigned volatile_token; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     unsigned lparen_token; | 
					
						
							| 
									
										
										
										
											2009-02-05 11:37:51 +01:00
										 |  |  |     // ### string literals
 | 
					
						
							|  |  |  |     // ### asm operand list
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  |     unsigned semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual AsmDefinitionAST *asAsmDefinition() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual AsmDefinitionAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT BaseSpecifierAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-06-05 09:44:25 +02:00
										 |  |  |     unsigned virtual_token; | 
					
						
							|  |  |  |     unsigned access_specifier_token; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     NameAST *name; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-09 11:55:49 +01:00
										 |  |  | public: // annotations
 | 
					
						
							| 
									
										
										
										
											2009-02-09 12:19:17 +01:00
										 |  |  |     BaseClass *symbol; | 
					
						
							| 
									
										
										
										
											2009-02-09 11:55:49 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual BaseSpecifierAST *asBaseSpecifier() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual BaseSpecifierAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-04 14:55:18 +01:00
										 |  |  | class CPLUSPLUS_EXPORT CompoundExpressionAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     CompoundStatementAST *compoundStatement; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     virtual CompoundExpressionAST *asCompoundExpression() { return this; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     virtual CompoundExpressionAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							|  |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-13 14:58:29 +01:00
										 |  |  | class CPLUSPLUS_EXPORT CompoundLiteralAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     ExpressionAST *type_id; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  |     ExpressionAST *initializer; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual CompoundLiteralAST *asCompoundLiteral() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-13 14:58:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual CompoundLiteralAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-13 14:58:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-01-13 14:58:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | class CPLUSPLUS_EXPORT QtMethodAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned method_token; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     DeclaratorAST *declarator; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual QtMethodAST *asQtMethod() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual QtMethodAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-30 16:30:21 +01:00
										 |  |  | class CPLUSPLUS_EXPORT QtMemberDeclarationAST: public StatementAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned q_token; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     ExpressionAST *type_id; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     virtual QtMemberDeclarationAST *asQtMemberDeclaration() { return this; } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual QtMemberDeclarationAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-30 16:30:21 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							|  |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | class CPLUSPLUS_EXPORT BinaryExpressionAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     ExpressionAST *left_expression; | 
					
						
							| 
									
										
										
										
											2009-01-02 17:36:08 +01:00
										 |  |  |     unsigned binary_op_token; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     ExpressionAST *right_expression; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual BinaryExpressionAST *asBinaryExpression() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual BinaryExpressionAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT CastExpressionAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     ExpressionAST *type_id; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  |     ExpressionAST *expression; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual CastExpressionAST *asCastExpression() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual CastExpressionAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ClassSpecifierAST: public SpecifierAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned classkey_token; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     SpecifierListAST *attribute_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     NameAST *name; | 
					
						
							| 
									
										
										
										
											2009-01-02 16:10:00 +01:00
										 |  |  |     unsigned colon_token; | 
					
						
							| 
									
										
										
										
											2009-11-10 14:03:40 +01:00
										 |  |  |     BaseSpecifierListAST *base_clause_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     unsigned lbrace_token; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     DeclarationListAST *member_specifier_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     unsigned rbrace_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-09 11:35:57 +01:00
										 |  |  | public: // annotations
 | 
					
						
							| 
									
										
										
										
											2009-02-09 12:19:17 +01:00
										 |  |  |     Class *symbol; | 
					
						
							| 
									
										
										
										
											2009-02-09 11:35:57 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ClassSpecifierAST *asClassSpecifier() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ClassSpecifierAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT CaseStatementAST: public StatementAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned case_token; | 
					
						
							|  |  |  |     ExpressionAST *expression; | 
					
						
							|  |  |  |     unsigned colon_token; | 
					
						
							|  |  |  |     StatementAST *statement; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual CaseStatementAST *asCaseStatement() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual CaseStatementAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT CompoundStatementAST: public StatementAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned lbrace_token; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     StatementListAST *statement_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     unsigned rbrace_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-09 14:58:13 +01:00
										 |  |  | public: // annotations
 | 
					
						
							|  |  |  |     Block *symbol; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual CompoundStatementAST *asCompoundStatement() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual CompoundStatementAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ConditionAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     SpecifierListAST *type_specifier_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     DeclaratorAST *declarator; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ConditionAST *asCondition() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ConditionAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ConditionalExpressionAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     ExpressionAST *condition; | 
					
						
							|  |  |  |     unsigned question_token; | 
					
						
							|  |  |  |     ExpressionAST *left_expression; | 
					
						
							|  |  |  |     unsigned colon_token; | 
					
						
							|  |  |  |     ExpressionAST *right_expression; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ConditionalExpressionAST *asConditionalExpression() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ConditionalExpressionAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT CppCastExpressionAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned cast_token; | 
					
						
							|  |  |  |     unsigned less_token; | 
					
						
							|  |  |  |     ExpressionAST *type_id; | 
					
						
							|  |  |  |     unsigned greater_token; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     ExpressionAST *expression; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual CppCastExpressionAST *asCppCastExpression() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual CppCastExpressionAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT CtorInitializerAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned colon_token; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     MemInitializerListAST *member_initializer_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual CtorInitializerAST *asCtorInitializer() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual CtorInitializerAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT DeclarationStatementAST: public StatementAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     DeclarationAST *declaration; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual DeclarationStatementAST *asDeclarationStatement() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual DeclarationStatementAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT DeclaratorIdAST: public CoreDeclaratorAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     NameAST *name; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual DeclaratorIdAST *asDeclaratorId() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual DeclaratorIdAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT NestedDeclaratorAST: public CoreDeclaratorAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     DeclaratorAST *declarator; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual NestedDeclaratorAST *asNestedDeclarator() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual NestedDeclaratorAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT FunctionDeclaratorAST: public PostfixDeclaratorAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     ParameterDeclarationClauseAST *parameters; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     SpecifierListAST *cv_qualifier_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     ExceptionSpecificationAST *exception_specification; | 
					
						
							| 
									
										
										
										
											2009-03-17 14:27:28 +01:00
										 |  |  |     ExpressionAST *as_cpp_initializer; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-09 12:47:58 +01:00
										 |  |  | public: // annotations
 | 
					
						
							|  |  |  |     Function *symbol; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual FunctionDeclaratorAST *asFunctionDeclarator() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual FunctionDeclaratorAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ArrayDeclaratorAST: public PostfixDeclaratorAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned lbracket_token; | 
					
						
							|  |  |  |     ExpressionAST *expression; | 
					
						
							|  |  |  |     unsigned rbracket_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ArrayDeclaratorAST *asArrayDeclarator() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ArrayDeclaratorAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT DeleteExpressionAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned scope_token; | 
					
						
							|  |  |  |     unsigned delete_token; | 
					
						
							|  |  |  |     unsigned lbracket_token; | 
					
						
							|  |  |  |     unsigned rbracket_token; | 
					
						
							|  |  |  |     ExpressionAST *expression; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual DeleteExpressionAST *asDeleteExpression() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual DeleteExpressionAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT DoStatementAST: public StatementAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned do_token; | 
					
						
							|  |  |  |     StatementAST *statement; | 
					
						
							|  |  |  |     unsigned while_token; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     ExpressionAST *expression; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  |     unsigned semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual DoStatementAST *asDoStatement() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual DoStatementAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT NamedTypeSpecifierAST: public SpecifierAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     NameAST *name; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual NamedTypeSpecifierAST *asNamedTypeSpecifier() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual NamedTypeSpecifierAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ElaboratedTypeSpecifierAST: public SpecifierAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned classkey_token; | 
					
						
							|  |  |  |     NameAST *name; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ElaboratedTypeSpecifierAST *asElaboratedTypeSpecifier() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ElaboratedTypeSpecifierAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT EnumSpecifierAST: public SpecifierAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned enum_token; | 
					
						
							|  |  |  |     NameAST *name; | 
					
						
							|  |  |  |     unsigned lbrace_token; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     EnumeratorListAST *enumerator_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     unsigned rbrace_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual EnumSpecifierAST *asEnumSpecifier() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual EnumSpecifierAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT EnumeratorAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned identifier_token; | 
					
						
							|  |  |  |     unsigned equal_token; | 
					
						
							|  |  |  |     ExpressionAST *expression; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual EnumeratorAST *asEnumerator() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual EnumeratorAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ExceptionDeclarationAST: public DeclarationAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     SpecifierListAST *type_specifier_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     DeclaratorAST *declarator; | 
					
						
							|  |  |  |     unsigned dot_dot_dot_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ExceptionDeclarationAST *asExceptionDeclaration() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ExceptionDeclarationAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ExceptionSpecificationAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned throw_token; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     unsigned dot_dot_dot_token; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     ExpressionListAST *type_id_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ExceptionSpecificationAST *asExceptionSpecification() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ExceptionSpecificationAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ExpressionOrDeclarationStatementAST: public StatementAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     StatementAST *expression; | 
					
						
							|  |  |  |     StatementAST *declaration; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ExpressionOrDeclarationStatementAST *asExpressionOrDeclarationStatement() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ExpressionOrDeclarationStatementAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ExpressionStatementAST: public StatementAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     ExpressionAST *expression; | 
					
						
							|  |  |  |     unsigned semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ExpressionStatementAST *asExpressionStatement() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-25 12:39:39 +01:00
										 |  |  |     virtual ExpressionStatementAST *clone(MemoryPool *pool) const; | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT FunctionDefinitionAST: public DeclarationAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-03-25 11:50:17 +01:00
										 |  |  |     unsigned qt_invokable_token; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     SpecifierListAST *decl_specifier_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     DeclaratorAST *declarator; | 
					
						
							|  |  |  |     CtorInitializerAST *ctor_initializer; | 
					
						
							|  |  |  |     StatementAST *function_body; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-09 12:19:17 +01:00
										 |  |  | public: // annotations
 | 
					
						
							|  |  |  |     Function *symbol; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual FunctionDefinitionAST *asFunctionDefinition() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual FunctionDefinitionAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-03 09:11:52 +02:00
										 |  |  | class CPLUSPLUS_EXPORT ForeachStatementAST: public StatementAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned foreach_token; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     // declaration
 | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     SpecifierListAST *type_specifier_list; | 
					
						
							| 
									
										
										
										
											2009-07-03 09:11:52 +02:00
										 |  |  |     DeclaratorAST *declarator; | 
					
						
							|  |  |  |     // or an expression
 | 
					
						
							|  |  |  |     ExpressionAST *initializer; | 
					
						
							|  |  |  |     unsigned comma_token; | 
					
						
							|  |  |  |     ExpressionAST *expression; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  |     StatementAST *statement; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: // annotations
 | 
					
						
							|  |  |  |     Block *symbol; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ForeachStatementAST *asForeachStatement() { return this; } | 
					
						
							| 
									
										
										
										
											2009-07-03 09:11:52 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ForeachStatementAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-03 09:11:52 +02:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-07-03 09:11:52 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | class CPLUSPLUS_EXPORT ForStatementAST: public StatementAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned for_token; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     StatementAST *initializer; | 
					
						
							|  |  |  |     ExpressionAST *condition; | 
					
						
							|  |  |  |     unsigned semicolon_token; | 
					
						
							|  |  |  |     ExpressionAST *expression; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  |     StatementAST *statement; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-09 14:58:13 +01:00
										 |  |  | public: // annotations
 | 
					
						
							|  |  |  |     Block *symbol; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ForStatementAST *asForStatement() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ForStatementAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT IfStatementAST: public StatementAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned if_token; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     ExpressionAST *condition; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  |     StatementAST *statement; | 
					
						
							|  |  |  |     unsigned else_token; | 
					
						
							|  |  |  |     StatementAST *else_statement; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-09 14:58:13 +01:00
										 |  |  | public: // annotations
 | 
					
						
							|  |  |  |     Block *symbol; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual IfStatementAST *asIfStatement() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual IfStatementAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ArrayInitializerAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned lbrace_token; | 
					
						
							|  |  |  |     ExpressionListAST *expression_list; | 
					
						
							|  |  |  |     unsigned rbrace_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ArrayInitializerAST *asArrayInitializer() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ArrayInitializerAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT LabeledStatementAST: public StatementAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned label_token; | 
					
						
							|  |  |  |     unsigned colon_token; | 
					
						
							|  |  |  |     StatementAST *statement; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual LabeledStatementAST *asLabeledStatement() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual LabeledStatementAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT LinkageBodyAST: public DeclarationAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned lbrace_token; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     DeclarationListAST *declaration_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     unsigned rbrace_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual LinkageBodyAST *asLinkageBody() { return this; } | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual LinkageBodyAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT LinkageSpecificationAST: public DeclarationAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned extern_token; | 
					
						
							| 
									
										
										
										
											2009-06-05 09:44:25 +02:00
										 |  |  |     unsigned extern_type_token; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     DeclarationAST *declaration; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual LinkageSpecificationAST *asLinkageSpecification() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual LinkageSpecificationAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT MemInitializerAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     NameAST *name; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							| 
									
										
										
										
											2009-11-13 12:36:51 +01:00
										 |  |  |     ExpressionListAST *expression_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual MemInitializerAST *asMemInitializer() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual MemInitializerAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT NestedNameSpecifierAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     NameAST *class_or_namespace_name; | 
					
						
							|  |  |  |     unsigned scope_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual NestedNameSpecifierAST *asNestedNameSpecifier() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual NestedNameSpecifierAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT QualifiedNameAST: public NameAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned global_scope_token; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     NestedNameSpecifierListAST *nested_name_specifier_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     NameAST *unqualified_name; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual QualifiedNameAST *asQualifiedName() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual QualifiedNameAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT OperatorFunctionIdAST: public NameAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned operator_token; | 
					
						
							|  |  |  |     OperatorAST *op; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual OperatorFunctionIdAST *asOperatorFunctionId() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual OperatorFunctionIdAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ConversionFunctionIdAST: public NameAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned operator_token; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     SpecifierListAST *type_specifier_list; | 
					
						
							|  |  |  |     PtrOperatorListAST *ptr_operator_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ConversionFunctionIdAST *asConversionFunctionId() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ConversionFunctionIdAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT SimpleNameAST: public NameAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned identifier_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual SimpleNameAST *asSimpleName() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual SimpleNameAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT DestructorNameAST: public NameAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned tilde_token; | 
					
						
							|  |  |  |     unsigned identifier_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual DestructorNameAST *asDestructorName() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual DestructorNameAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT TemplateIdAST: public NameAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned identifier_token; | 
					
						
							|  |  |  |     unsigned less_token; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     TemplateArgumentListAST *template_argument_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     unsigned greater_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual TemplateIdAST *asTemplateId() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual TemplateIdAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT NamespaceAST: public DeclarationAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned namespace_token; | 
					
						
							|  |  |  |     unsigned identifier_token; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     SpecifierListAST *attribute_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     DeclarationAST *linkage_body; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-09 12:00:06 +01:00
										 |  |  | public: // annotations
 | 
					
						
							| 
									
										
										
										
											2009-02-09 12:19:17 +01:00
										 |  |  |     Namespace *symbol; | 
					
						
							| 
									
										
										
										
											2009-02-09 12:00:06 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual NamespaceAST *asNamespace() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual NamespaceAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT NamespaceAliasDefinitionAST: public DeclarationAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned namespace_token; | 
					
						
							| 
									
										
										
										
											2009-06-05 09:44:25 +02:00
										 |  |  |     unsigned namespace_name_token; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     unsigned equal_token; | 
					
						
							|  |  |  |     NameAST *name; | 
					
						
							|  |  |  |     unsigned semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual NamespaceAliasDefinitionAST *asNamespaceAliasDefinition() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual NamespaceAliasDefinitionAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-10 14:43:19 +01:00
										 |  |  | class CPLUSPLUS_EXPORT NewPlacementAST: public AST | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-02-10 14:43:19 +01:00
										 |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     ExpressionListAST *expression_list; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual NewPlacementAST *asNewPlacement() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual NewPlacementAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-10 14:43:19 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-02-10 14:43:19 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT NewArrayDeclaratorAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned lbracket_token; | 
					
						
							|  |  |  |     ExpressionAST *expression; | 
					
						
							|  |  |  |     unsigned rbracket_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual NewArrayDeclaratorAST *asNewArrayDeclarator() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-10 14:43:19 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual NewArrayDeclaratorAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT NewExpressionAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned scope_token; | 
					
						
							|  |  |  |     unsigned new_token; | 
					
						
							| 
									
										
										
										
											2009-02-10 14:43:19 +01:00
										 |  |  |     NewPlacementAST *new_placement; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     ExpressionAST *type_id; | 
					
						
							| 
									
										
										
										
											2009-02-10 14:43:19 +01:00
										 |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     NewTypeIdAST *new_type_id; | 
					
						
							| 
									
										
										
										
											2009-02-10 14:43:19 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     NewInitializerAST *new_initializer; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual NewExpressionAST *asNewExpression() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual NewExpressionAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT NewInitializerAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     ExpressionAST *expression; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual NewInitializerAST *asNewInitializer() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual NewInitializerAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT NewTypeIdAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     SpecifierListAST *type_specifier_list; | 
					
						
							|  |  |  |     PtrOperatorListAST *ptr_operator_list; | 
					
						
							|  |  |  |     NewArrayDeclaratorListAST *new_array_declarator_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual NewTypeIdAST *asNewTypeId() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual NewTypeIdAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT OperatorAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned op_token; | 
					
						
							|  |  |  |     unsigned open_token; | 
					
						
							|  |  |  |     unsigned close_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual OperatorAST *asOperator() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual OperatorAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ParameterDeclarationAST: public DeclarationAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     SpecifierListAST *type_specifier_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     DeclaratorAST *declarator; | 
					
						
							|  |  |  |     unsigned equal_token; | 
					
						
							|  |  |  |     ExpressionAST *expression; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-09 12:19:17 +01:00
										 |  |  | public: // annotations
 | 
					
						
							|  |  |  |     Argument *symbol; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ParameterDeclarationAST *asParameterDeclaration() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ParameterDeclarationAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ParameterDeclarationClauseAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     DeclarationListAST *parameter_declaration_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     unsigned dot_dot_dot_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ParameterDeclarationClauseAST *asParameterDeclarationClause() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ParameterDeclarationClauseAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT CallAST: public PostfixAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     ExpressionListAST *expression_list; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual CallAST *asCall() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual CallAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ArrayAccessAST: public PostfixAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned lbracket_token; | 
					
						
							|  |  |  |     ExpressionAST *expression; | 
					
						
							|  |  |  |     unsigned rbracket_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ArrayAccessAST *asArrayAccess() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ArrayAccessAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT PostIncrDecrAST: public PostfixAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned incr_decr_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual PostIncrDecrAST *asPostIncrDecr() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual PostIncrDecrAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT MemberAccessAST: public PostfixAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned access_token; | 
					
						
							|  |  |  |     unsigned template_token; | 
					
						
							|  |  |  |     NameAST *member_name; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual MemberAccessAST *asMemberAccess() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual MemberAccessAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT TypeidExpressionAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned typeid_token; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     ExpressionAST *expression; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual TypeidExpressionAST *asTypeidExpression() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual TypeidExpressionAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT TypenameCallExpressionAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned typename_token; | 
					
						
							|  |  |  |     NameAST *name; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     ExpressionListAST *expression_list; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual TypenameCallExpressionAST *asTypenameCallExpression() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual TypenameCallExpressionAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT TypeConstructorCallAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     SpecifierListAST *type_specifier_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     ExpressionListAST *expression_list; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual TypeConstructorCallAST *asTypeConstructorCall() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual TypeConstructorCallAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT PostfixExpressionAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     ExpressionAST *base_expression; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     PostfixListAST *postfix_expression_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual PostfixExpressionAST *asPostfixExpression() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual PostfixExpressionAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT PointerToMemberAST: public PtrOperatorAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned global_scope_token; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     NestedNameSpecifierListAST *nested_name_specifier_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     unsigned star_token; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     SpecifierListAST *cv_qualifier_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual PointerToMemberAST *asPointerToMember() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual PointerToMemberAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT PointerAST: public PtrOperatorAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned star_token; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     SpecifierListAST *cv_qualifier_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual PointerAST *asPointer() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual PointerAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ReferenceAST: public PtrOperatorAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned amp_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ReferenceAST *asReference() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ReferenceAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT BreakStatementAST: public StatementAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned break_token; | 
					
						
							|  |  |  |     unsigned semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual BreakStatementAST *asBreakStatement() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual BreakStatementAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ContinueStatementAST: public StatementAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned continue_token; | 
					
						
							|  |  |  |     unsigned semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ContinueStatementAST *asContinueStatement() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ContinueStatementAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT GotoStatementAST: public StatementAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned goto_token; | 
					
						
							|  |  |  |     unsigned identifier_token; | 
					
						
							|  |  |  |     unsigned semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual GotoStatementAST *asGotoStatement() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual GotoStatementAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ReturnStatementAST: public StatementAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned return_token; | 
					
						
							|  |  |  |     ExpressionAST *expression; | 
					
						
							|  |  |  |     unsigned semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ReturnStatementAST *asReturnStatement() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ReturnStatementAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT SizeofExpressionAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned sizeof_token; | 
					
						
							| 
									
										
										
										
											2009-06-18 14:21:28 +02:00
										 |  |  |     unsigned lparen_token; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     ExpressionAST *expression; | 
					
						
							| 
									
										
										
										
											2009-06-18 14:21:28 +02:00
										 |  |  |     unsigned rparen_token; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual SizeofExpressionAST *asSizeofExpression() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual SizeofExpressionAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT NumericLiteralAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-06-05 09:44:25 +02:00
										 |  |  |     unsigned literal_token; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual NumericLiteralAST *asNumericLiteral() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual NumericLiteralAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT BoolLiteralAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-06-05 09:44:25 +02:00
										 |  |  |     unsigned literal_token; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual BoolLiteralAST *asBoolLiteral() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual BoolLiteralAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ThisExpressionAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned this_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ThisExpressionAST *asThisExpression() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ThisExpressionAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT NestedExpressionAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     ExpressionAST *expression; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual NestedExpressionAST *asNestedExpression() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual NestedExpressionAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT StringLiteralAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-06-05 09:44:25 +02:00
										 |  |  |     unsigned literal_token; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     StringLiteralAST *next; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual StringLiteralAST *asStringLiteral() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual StringLiteralAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT SwitchStatementAST: public StatementAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned switch_token; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     ExpressionAST *condition; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  |     StatementAST *statement; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-09 14:58:13 +01:00
										 |  |  | public: // annotations
 | 
					
						
							|  |  |  |     Block *symbol; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual SwitchStatementAST *asSwitchStatement() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual SwitchStatementAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT TemplateDeclarationAST: public DeclarationAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned export_token; | 
					
						
							|  |  |  |     unsigned template_token; | 
					
						
							|  |  |  |     unsigned less_token; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     DeclarationListAST *template_parameter_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     unsigned greater_token; | 
					
						
							|  |  |  |     DeclarationAST *declaration; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual TemplateDeclarationAST *asTemplateDeclaration() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual TemplateDeclarationAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ThrowExpressionAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned throw_token; | 
					
						
							|  |  |  |     ExpressionAST *expression; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ThrowExpressionAST *asThrowExpression() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ThrowExpressionAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT TranslationUnitAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     DeclarationListAST *declaration_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual TranslationUnitAST *asTranslationUnit() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual TranslationUnitAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT TryBlockStatementAST: public StatementAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned try_token; | 
					
						
							|  |  |  |     StatementAST *statement; | 
					
						
							| 
									
										
										
										
											2009-11-10 15:15:51 +01:00
										 |  |  |     CatchClauseListAST *catch_clause_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual TryBlockStatementAST *asTryBlockStatement() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual TryBlockStatementAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT CatchClauseAST: public StatementAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned catch_token; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     ExceptionDeclarationAST *exception_declaration; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  |     StatementAST *statement; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-09 14:58:13 +01:00
										 |  |  | public: // annotations
 | 
					
						
							|  |  |  |     Block *symbol; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual CatchClauseAST *asCatchClause() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual CatchClauseAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT TypeIdAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     SpecifierListAST *type_specifier_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     DeclaratorAST *declarator; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual TypeIdAST *asTypeId() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual TypeIdAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT TypenameTypeParameterAST: public DeclarationAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned classkey_token; | 
					
						
							|  |  |  |     NameAST *name; | 
					
						
							|  |  |  |     unsigned equal_token; | 
					
						
							|  |  |  |     ExpressionAST *type_id; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-09 12:19:17 +01:00
										 |  |  | public: // annotations
 | 
					
						
							| 
									
										
										
										
											2009-12-08 12:04:57 +01:00
										 |  |  |     TypenameArgument *symbol; | 
					
						
							| 
									
										
										
										
											2009-02-09 12:19:17 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual TypenameTypeParameterAST *asTypenameTypeParameter() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual TypenameTypeParameterAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT TemplateTypeParameterAST: public DeclarationAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned template_token; | 
					
						
							|  |  |  |     unsigned less_token; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     DeclarationListAST *template_parameter_list; | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     unsigned greater_token; | 
					
						
							|  |  |  |     unsigned class_token; | 
					
						
							|  |  |  |     NameAST *name; | 
					
						
							|  |  |  |     unsigned equal_token; | 
					
						
							|  |  |  |     ExpressionAST *type_id; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-09 12:19:17 +01:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-12-08 12:04:57 +01:00
										 |  |  |     TypenameArgument *symbol; | 
					
						
							| 
									
										
										
										
											2009-02-09 12:19:17 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual TemplateTypeParameterAST *asTemplateTypeParameter() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual TemplateTypeParameterAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT UnaryExpressionAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned unary_op_token; | 
					
						
							|  |  |  |     ExpressionAST *expression; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual UnaryExpressionAST *asUnaryExpression() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual UnaryExpressionAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT UsingAST: public DeclarationAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned using_token; | 
					
						
							|  |  |  |     unsigned typename_token; | 
					
						
							|  |  |  |     NameAST *name; | 
					
						
							|  |  |  |     unsigned semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-09 12:19:17 +01:00
										 |  |  | public: // annotations
 | 
					
						
							|  |  |  |     UsingDeclaration *symbol; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual UsingAST *asUsing() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual UsingAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT UsingDirectiveAST: public DeclarationAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned using_token; | 
					
						
							|  |  |  |     unsigned namespace_token; | 
					
						
							|  |  |  |     NameAST *name; | 
					
						
							|  |  |  |     unsigned semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-09 12:19:17 +01:00
										 |  |  | public: | 
					
						
							|  |  |  |     UsingNamespaceDirective *symbol; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual UsingDirectiveAST *asUsingDirective() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual UsingDirectiveAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT WhileStatementAST: public StatementAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned while_token; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     ExpressionAST *condition; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  |     StatementAST *statement; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-09 14:58:13 +01:00
										 |  |  | public: // annotations
 | 
					
						
							|  |  |  |     Block *symbol; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual WhileStatementAST *asWhileStatement() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual WhileStatementAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-05 17:14:08 +02:00
										 |  |  | class CPLUSPLUS_EXPORT ObjCClassForwardDeclarationAST: public DeclarationAST | 
					
						
							| 
									
										
										
										
											2009-01-08 12:02:07 +01:00
										 |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     SpecifierListAST *attribute_list; | 
					
						
							| 
									
										
										
										
											2009-01-08 12:02:07 +01:00
										 |  |  |     unsigned class_token; | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  |     NameListAST *identifier_list; | 
					
						
							| 
									
										
										
										
											2009-01-08 12:02:07 +01:00
										 |  |  |     unsigned semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-28 16:34:15 +02:00
										 |  |  | public: // annotations
 | 
					
						
							|  |  |  |     List<ObjCForwardClassDeclaration *> *symbols; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-08 12:02:07 +01:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ObjCClassForwardDeclarationAST *asObjCClassForwardDeclaration() { return this; } | 
					
						
							| 
									
										
										
										
											2009-02-09 15:55:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-08 12:02:07 +01:00
										 |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ObjCClassForwardDeclarationAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-08 12:02:07 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-01-08 12:02:07 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-05 17:14:08 +02:00
										 |  |  | class CPLUSPLUS_EXPORT ObjCClassDeclarationAST: public DeclarationAST | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     SpecifierListAST *attribute_list; | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  |     unsigned interface_token; | 
					
						
							| 
									
										
										
										
											2009-08-05 17:14:08 +02:00
										 |  |  |     unsigned implementation_token; | 
					
						
							|  |  |  |     NameAST *class_name; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     NameAST *category_name; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  |     unsigned colon_token; | 
					
						
							| 
									
										
										
										
											2009-08-05 17:14:08 +02:00
										 |  |  |     NameAST *superclass; | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  |     ObjCProtocolRefsAST *protocol_refs; | 
					
						
							| 
									
										
										
										
											2009-07-16 14:31:13 +02:00
										 |  |  |     ObjCInstanceVariablesDeclarationAST *inst_vars_decl; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     DeclarationListAST *member_declaration_list; | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  |     unsigned end_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-28 16:34:15 +02:00
										 |  |  | public: // annotations
 | 
					
						
							|  |  |  |     ObjCClass *symbol; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ObjCClassDeclarationAST *asObjCClassDeclaration() { return this; } | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ObjCClassDeclarationAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-05 17:14:08 +02:00
										 |  |  | class CPLUSPLUS_EXPORT ObjCProtocolForwardDeclarationAST: public DeclarationAST | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     SpecifierListAST *attribute_list; | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  |     unsigned protocol_token; | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  |     NameListAST *identifier_list; | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  |     unsigned semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-28 16:34:15 +02:00
										 |  |  | public: // annotations
 | 
					
						
							|  |  |  |     List<ObjCForwardProtocolDeclaration *> *symbols; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ObjCProtocolForwardDeclarationAST *asObjCProtocolForwardDeclaration() { return this; } | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ObjCProtocolForwardDeclarationAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-05 17:14:08 +02:00
										 |  |  | class CPLUSPLUS_EXPORT ObjCProtocolDeclarationAST: public DeclarationAST | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     SpecifierListAST *attribute_list; | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  |     unsigned protocol_token; | 
					
						
							| 
									
										
										
										
											2009-08-05 17:14:08 +02:00
										 |  |  |     NameAST *name; | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  |     ObjCProtocolRefsAST *protocol_refs; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     DeclarationListAST *member_declaration_list; | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  |     unsigned end_token; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-28 16:34:15 +02:00
										 |  |  | public: // annotations
 | 
					
						
							|  |  |  |     ObjCProtocol *symbol; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ObjCProtocolDeclarationAST *asObjCProtocolDeclaration() { return this; } | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ObjCProtocolDeclarationAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ObjCProtocolRefsAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned less_token; | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  |     NameListAST *identifier_list; | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  |     unsigned greater_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ObjCProtocolRefsAST *asObjCProtocolRefs() { return this; } | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ObjCProtocolRefsAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-15 12:11:07 +02:00
										 |  |  | class CPLUSPLUS_EXPORT ObjCMessageArgumentAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     ExpressionAST *parameter_value_expression; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ObjCMessageArgumentAST *asObjCMessageArgument() { return this; } | 
					
						
							| 
									
										
										
										
											2009-07-15 12:11:07 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ObjCMessageArgumentAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-15 12:11:07 +02:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-07-15 12:11:07 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  | class CPLUSPLUS_EXPORT ObjCMessageExpressionAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned lbracket_token; | 
					
						
							| 
									
										
										
										
											2009-07-15 12:11:07 +02:00
										 |  |  |     ExpressionAST *receiver_expression; | 
					
						
							| 
									
										
										
										
											2009-07-31 16:03:48 +02:00
										 |  |  |     ObjCSelectorAST *selector; | 
					
						
							| 
									
										
										
										
											2009-07-15 12:11:07 +02:00
										 |  |  |     ObjCMessageArgumentListAST *argument_list; | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  |     unsigned rbracket_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ObjCMessageExpressionAST *asObjCMessageExpression() { return this; } | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ObjCMessageExpressionAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-07-13 09:45:28 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-16 12:18:05 +02:00
										 |  |  | class CPLUSPLUS_EXPORT ObjCProtocolExpressionAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned protocol_token; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     unsigned identifier_token; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ObjCProtocolExpressionAST *asObjCProtocolExpression() { return this; } | 
					
						
							| 
									
										
										
										
											2009-07-16 12:18:05 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ObjCProtocolExpressionAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-16 12:18:05 +02:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-07-16 12:18:05 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-16 12:44:47 +02:00
										 |  |  | class CPLUSPLUS_EXPORT ObjCTypeNameAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     unsigned type_qualifier_token; | 
					
						
							| 
									
										
										
										
											2009-07-16 12:44:47 +02:00
										 |  |  |     ExpressionAST *type_id; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ObjCTypeNameAST *asObjCTypeName() { return this; } | 
					
						
							| 
									
										
										
										
											2009-07-16 12:44:47 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ObjCTypeNameAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-16 12:44:47 +02:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-07-16 12:44:47 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ObjCEncodeExpressionAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned encode_token; | 
					
						
							|  |  |  |     ObjCTypeNameAST *type_name; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ObjCEncodeExpressionAST *asObjCEncodeExpression() { return this; } | 
					
						
							| 
									
										
										
										
											2009-07-16 12:44:47 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ObjCEncodeExpressionAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-16 12:44:47 +02:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-07-16 12:44:47 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-28 16:34:15 +02:00
										 |  |  | class CPLUSPLUS_EXPORT ObjCSelectorExpressionAST: public ExpressionAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned selector_token; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     ObjCSelectorAST *selector; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ObjCSelectorExpressionAST *asObjCSelectorExpression() { return this; } | 
					
						
							| 
									
										
										
										
											2009-07-28 16:34:15 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ObjCSelectorExpressionAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-28 16:34:15 +02:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-07-28 16:34:15 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-16 15:50:42 +02:00
										 |  |  | class CPLUSPLUS_EXPORT ObjCInstanceVariablesDeclarationAST: public AST | 
					
						
							| 
									
										
										
										
											2009-07-16 14:31:13 +02:00
										 |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-07-16 15:50:42 +02:00
										 |  |  |     unsigned lbrace_token; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     DeclarationListAST *instance_variable_list; | 
					
						
							| 
									
										
										
										
											2009-07-16 15:50:42 +02:00
										 |  |  |     unsigned rbrace_token; | 
					
						
							| 
									
										
										
										
											2009-07-16 14:31:13 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ObjCInstanceVariablesDeclarationAST *asObjCInstanceVariablesDeclaration() { return this; } | 
					
						
							| 
									
										
										
										
											2009-07-16 14:31:13 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ObjCInstanceVariablesDeclarationAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-16 14:31:13 +02:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-07-16 14:31:13 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-16 15:50:42 +02:00
										 |  |  | class CPLUSPLUS_EXPORT ObjCVisibilityDeclarationAST: public DeclarationAST | 
					
						
							| 
									
										
										
										
											2009-07-16 14:31:13 +02:00
										 |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-07-16 15:50:42 +02:00
										 |  |  |     unsigned visibility_token; | 
					
						
							| 
									
										
										
										
											2009-07-16 14:31:13 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ObjCVisibilityDeclarationAST *asObjCVisibilityDeclaration() { return this; } | 
					
						
							| 
									
										
										
										
											2009-07-16 14:31:13 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ObjCVisibilityDeclarationAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-16 14:31:13 +02:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-07-16 14:31:13 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-28 16:34:15 +02:00
										 |  |  | class CPLUSPLUS_EXPORT ObjCPropertyAttributeAST: public AST | 
					
						
							| 
									
										
										
										
											2009-07-16 14:31:13 +02:00
										 |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-07-16 15:50:42 +02:00
										 |  |  |     unsigned attribute_identifier_token; | 
					
						
							|  |  |  |     unsigned equals_token; | 
					
						
							| 
									
										
										
										
											2009-07-28 16:34:15 +02:00
										 |  |  |     ObjCSelectorAST *method_selector; | 
					
						
							| 
									
										
										
										
											2009-07-16 14:31:13 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ObjCPropertyAttributeAST *asObjCPropertyAttribute() { return this; } | 
					
						
							| 
									
										
										
										
											2009-07-16 14:31:13 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ObjCPropertyAttributeAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-16 15:50:42 +02:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-07-16 15:50:42 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ObjCPropertyDeclarationAST: public DeclarationAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     SpecifierListAST *attribute_list; | 
					
						
							| 
									
										
										
										
											2009-07-16 15:50:42 +02:00
										 |  |  |     unsigned property_token; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     ObjCPropertyAttributeListAST *property_attribute_list; | 
					
						
							| 
									
										
										
										
											2009-07-16 15:50:42 +02:00
										 |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  |     DeclarationAST *simple_declaration; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-11 09:32:05 +01:00
										 |  |  | public: // annotations
 | 
					
						
							|  |  |  |     List<ObjCPropertyDeclaration *> *symbols; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-16 15:50:42 +02:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ObjCPropertyDeclarationAST *asObjCPropertyDeclaration() { return this; } | 
					
						
							| 
									
										
										
										
											2009-07-16 15:50:42 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ObjCPropertyDeclarationAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-16 14:31:13 +02:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-07-16 14:31:13 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-08 09:34:51 +01:00
										 |  |  | class CPLUSPLUS_EXPORT ObjCMessageArgumentDeclarationAST: public AST | 
					
						
							| 
									
										
										
										
											2009-07-16 17:38:24 +02:00
										 |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     ObjCTypeNameAST* type_name; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     SpecifierListAST *attribute_list; | 
					
						
							| 
									
										
										
										
											2010-02-17 16:25:12 +01:00
										 |  |  |     NameAST *param_name; | 
					
						
							| 
									
										
										
										
											2009-07-16 17:38:24 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-28 16:34:15 +02:00
										 |  |  | public: // annotations
 | 
					
						
							| 
									
										
										
										
											2009-07-31 13:22:32 +02:00
										 |  |  |     Argument *argument; | 
					
						
							| 
									
										
										
										
											2009-07-28 16:34:15 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-16 17:38:24 +02:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ObjCMessageArgumentDeclarationAST *asObjCMessageArgumentDeclaration() { return this; } | 
					
						
							| 
									
										
										
										
											2009-07-16 17:38:24 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ObjCMessageArgumentDeclarationAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-16 17:38:24 +02:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-07-16 17:38:24 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-20 11:46:59 +02:00
										 |  |  | class CPLUSPLUS_EXPORT ObjCMethodPrototypeAST: public AST | 
					
						
							| 
									
										
										
										
											2009-07-16 17:38:24 +02:00
										 |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned method_type_token; | 
					
						
							|  |  |  |     ObjCTypeNameAST *type_name; | 
					
						
							| 
									
										
										
										
											2009-07-28 16:34:15 +02:00
										 |  |  |     ObjCSelectorAST *selector; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     ObjCMessageArgumentDeclarationListAST *argument_list; | 
					
						
							| 
									
										
										
										
											2009-10-05 18:02:01 +02:00
										 |  |  |     unsigned dot_dot_dot_token; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     SpecifierListAST *attribute_list; | 
					
						
							| 
									
										
										
										
											2009-07-16 17:38:24 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-28 16:34:15 +02:00
										 |  |  | public: // annotations
 | 
					
						
							| 
									
										
										
										
											2009-08-05 18:30:18 +02:00
										 |  |  |     ObjCMethod *symbol; | 
					
						
							| 
									
										
										
										
											2009-07-28 16:34:15 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-16 17:38:24 +02:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ObjCMethodPrototypeAST *asObjCMethodPrototype() { return this; } | 
					
						
							| 
									
										
										
										
											2009-07-16 17:38:24 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ObjCMethodPrototypeAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-16 17:38:24 +02:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-07-20 11:46:59 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ObjCMethodDeclarationAST: public DeclarationAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     ObjCMethodPrototypeAST *method_prototype; | 
					
						
							| 
									
										
										
										
											2009-08-04 16:22:24 +02:00
										 |  |  |     StatementAST *function_body; | 
					
						
							| 
									
										
										
										
											2009-07-20 11:46:59 +02:00
										 |  |  |     unsigned semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ObjCMethodDeclarationAST *asObjCMethodDeclaration() { return this; } | 
					
						
							| 
									
										
										
										
											2009-07-20 11:46:59 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ObjCMethodDeclarationAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-20 11:46:59 +02:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-07-20 11:46:59 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-20 10:04:44 +02:00
										 |  |  | class CPLUSPLUS_EXPORT ObjCSynthesizedPropertyAST: public AST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     unsigned property_identifier_token; | 
					
						
							| 
									
										
										
										
											2009-07-20 10:04:44 +02:00
										 |  |  |     unsigned equals_token; | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     unsigned alias_identifier_token; | 
					
						
							| 
									
										
										
										
											2009-07-20 10:04:44 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ObjCSynthesizedPropertyAST *asObjCSynthesizedProperty() { return this; } | 
					
						
							| 
									
										
										
										
											2009-07-20 10:04:44 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ObjCSynthesizedPropertyAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-20 10:04:44 +02:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-07-20 10:04:44 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ObjCSynthesizedPropertiesDeclarationAST: public DeclarationAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned synthesized_token; | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     ObjCSynthesizedPropertyListAST *property_identifier_list; | 
					
						
							| 
									
										
										
										
											2009-07-20 10:04:44 +02:00
										 |  |  |     unsigned semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ObjCSynthesizedPropertiesDeclarationAST *asObjCSynthesizedPropertiesDeclaration() { return this; } | 
					
						
							| 
									
										
										
										
											2009-07-20 10:04:44 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ObjCSynthesizedPropertiesDeclarationAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-20 10:04:44 +02:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-07-20 10:04:44 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ObjCDynamicPropertiesDeclarationAST: public DeclarationAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned dynamic_token; | 
					
						
							| 
									
										
										
										
											2010-02-06 11:05:43 +01:00
										 |  |  |     NameListAST *property_identifier_list; | 
					
						
							| 
									
										
										
										
											2009-07-20 10:04:44 +02:00
										 |  |  |     unsigned semicolon_token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ObjCDynamicPropertiesDeclarationAST *asObjCDynamicPropertiesDeclaration() { return this; } | 
					
						
							| 
									
										
										
										
											2009-07-20 10:04:44 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ObjCDynamicPropertiesDeclarationAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-20 10:04:44 +02:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-07-20 10:04:44 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CPLUSPLUS_EXPORT ObjCFastEnumerationAST: public StatementAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned for_token; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							| 
									
										
										
										
											2009-07-29 10:06:14 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     // declaration
 | 
					
						
							| 
									
										
										
										
											2009-11-10 16:47:16 +01:00
										 |  |  |     SpecifierListAST *type_specifier_list; | 
					
						
							| 
									
										
										
										
											2009-07-29 10:06:14 +02:00
										 |  |  |     DeclaratorAST *declarator; | 
					
						
							|  |  |  |     // or an expression
 | 
					
						
							|  |  |  |     ExpressionAST *initializer; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-20 10:04:44 +02:00
										 |  |  |     unsigned in_token; | 
					
						
							|  |  |  |     ExpressionAST *fast_enumeratable_expression; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							| 
									
										
										
										
											2010-01-09 18:00:25 +01:00
										 |  |  |     StatementAST *statement; | 
					
						
							| 
									
										
										
										
											2009-07-20 10:04:44 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-05 18:30:18 +02:00
										 |  |  | public: // annotations
 | 
					
						
							|  |  |  |     Block *symbol; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-20 10:04:44 +02:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ObjCFastEnumerationAST *asObjCFastEnumeration() { return this; } | 
					
						
							| 
									
										
										
										
											2009-07-20 10:04:44 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ObjCFastEnumerationAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-20 10:04:44 +02:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-07-20 10:04:44 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-31 16:53:05 +02:00
										 |  |  | class CPLUSPLUS_EXPORT ObjCSynchronizedStatementAST: public StatementAST | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     unsigned synchronized_token; | 
					
						
							|  |  |  |     unsigned lparen_token; | 
					
						
							|  |  |  |     ExpressionAST *synchronized_object; | 
					
						
							|  |  |  |     unsigned rparen_token; | 
					
						
							|  |  |  |     StatementAST *statement; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2009-11-09 12:50:00 +01:00
										 |  |  |     virtual ObjCSynchronizedStatementAST *asObjCSynchronizedStatement() { return this; } | 
					
						
							| 
									
										
										
										
											2009-07-31 16:53:05 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual unsigned firstToken() const; | 
					
						
							|  |  |  |     virtual unsigned lastToken() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 11:40:50 +01:00
										 |  |  |     virtual ObjCSynchronizedStatementAST *clone(MemoryPool *pool) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-31 16:53:05 +02:00
										 |  |  | protected: | 
					
						
							|  |  |  |     virtual void accept0(ASTVisitor *visitor); | 
					
						
							| 
									
										
										
										
											2009-11-12 17:35:48 +01:00
										 |  |  |     virtual bool match0(AST *, ASTMatcher *); | 
					
						
							| 
									
										
										
										
											2009-07-31 16:53:05 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-20 11:21:25 +02:00
										 |  |  | } // end of namespace CPlusPlus
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | #endif // CPLUSPLUS_AST_H
 |