summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/AST.h
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@nokia.com>2010-02-02 11:40:50 +0100
committerErik Verbruggen <erik.verbruggen@nokia.com>2010-02-02 11:41:57 +0100
commitfcf67d7d8e2d3edfe74132f9a96a2943ec23cce4 (patch)
tree0aade5ac2011ada04b4c41c69d1d6bcd52d6433c /src/shared/cplusplus/AST.h
parent4bb0e85cfe22a97f1fe78b953baae19e37796bd6 (diff)
downloadqt-creator-fcf67d7d8e2d3edfe74132f9a96a2943ec23cce4.tar.gz
Added clone methods to the AST.
Diffstat (limited to 'src/shared/cplusplus/AST.h')
-rw-r--r--src/shared/cplusplus/AST.h289
1 files changed, 279 insertions, 10 deletions
diff --git a/src/shared/cplusplus/AST.h b/src/shared/cplusplus/AST.h
index 8bbd9fe989..4d20094e9c 100644
--- a/src/shared/cplusplus/AST.h
+++ b/src/shared/cplusplus/AST.h
@@ -94,7 +94,7 @@ public:
// ### assert(0);
return 0;
}
-
+
_Tp value;
List *next;
};
@@ -143,15 +143,11 @@ public:
virtual unsigned firstToken() const = 0;
virtual unsigned lastToken() const = 0;
+ virtual AST *clone(MemoryPool *pool) const = 0;
+
virtual AccessDeclarationAST *asAccessDeclaration() { return 0; }
virtual ArrayAccessAST *asArrayAccess() { return 0; }
virtual ArrayDeclaratorAST *asArrayDeclarator() { return 0; }
-#ifdef ICHECK_BUILD
- virtual QPropertyDeclarationAST *asQPropertyDeclarationAST() { return 0; }
- virtual QEnumDeclarationAST *asQEnumDeclarationAST() { return 0; }
- virtual QFlagsDeclarationAST *asQFlagsDeclarationAST() { return 0; }
- virtual QDeclareFlagsDeclarationAST *asQDeclareFlagsDeclarationAST() { return 0; }
-#endif
virtual ArrayInitializerAST *asArrayInitializer() { return 0; }
virtual AsmDefinitionAST *asAsmDefinition() { return 0; }
virtual AttributeAST *asAttribute() { return 0; }
@@ -282,6 +278,12 @@ public:
virtual UsingAST *asUsing() { return 0; }
virtual UsingDirectiveAST *asUsingDirective() { return 0; }
virtual WhileStatementAST *asWhileStatement() { return 0; }
+#ifdef ICHECK_BUILD
+ virtual QPropertyDeclarationAST *asQPropertyDeclarationAST() { return 0; }
+ virtual QEnumDeclarationAST *asQEnumDeclarationAST() { return 0; }
+ virtual QFlagsDeclarationAST *asQFlagsDeclarationAST() { return 0; }
+ virtual QDeclareFlagsDeclarationAST *asQDeclareFlagsDeclarationAST() { return 0; }
+#endif
protected:
virtual void accept0(ASTVisitor *visitor) = 0;
@@ -292,18 +294,25 @@ class CPLUSPLUS_EXPORT StatementAST: public AST
{
public:
virtual StatementAST *asStatement() { return this; }
+
+ virtual StatementAST *clone(MemoryPool *pool) const = 0;
};
class CPLUSPLUS_EXPORT ExpressionAST: public AST
{
public:
virtual ExpressionAST *asExpression() { return this; }
+
+ virtual ExpressionAST *clone(MemoryPool *pool) const = 0;
};
class CPLUSPLUS_EXPORT DeclarationAST: public AST
{
public:
virtual DeclarationAST *asDeclaration() { return this; }
+
+ virtual DeclarationAST *clone(MemoryPool *pool) const = 0;
+
#ifdef ICHECK_BUILD
unsigned invoke_token;
#endif
@@ -316,36 +325,48 @@ public: // annotations
public:
virtual NameAST *asName() { return this; }
+
+ virtual NameAST *clone(MemoryPool *pool) const = 0;
};
class CPLUSPLUS_EXPORT SpecifierAST: public AST
{
public:
virtual SpecifierAST *asSpecifier() { return this; }
+
+ virtual SpecifierAST *clone(MemoryPool *pool) const = 0;
};
class CPLUSPLUS_EXPORT PtrOperatorAST: public AST
{
public:
virtual PtrOperatorAST *asPtrOperator() { return this; }
+
+ virtual PtrOperatorAST *clone(MemoryPool *pool) const = 0;
};
class CPLUSPLUS_EXPORT PostfixAST: public AST
{
public:
virtual PostfixAST *asPostfix() { return this; }
+
+ virtual PostfixAST *clone(MemoryPool *pool) const = 0;
};
class CPLUSPLUS_EXPORT CoreDeclaratorAST: public AST
{
public:
virtual CoreDeclaratorAST *asCoreDeclarator() { return this; }
+
+ virtual CoreDeclaratorAST *clone(MemoryPool *pool) const = 0;
};
class CPLUSPLUS_EXPORT PostfixDeclaratorAST: public AST
{
public:
virtual PostfixDeclaratorAST *asPostfixDeclarator() { return this; }
+
+ virtual PostfixDeclaratorAST *clone(MemoryPool *pool) const = 0;
};
class CPLUSPLUS_EXPORT ObjCSelectorAST: public AST
@@ -355,6 +376,8 @@ public: // annotation
public:
virtual ObjCSelectorAST *asObjCSelector() { return this; }
+
+ virtual ObjCSelectorAST *clone(MemoryPool *pool) const = 0;
};
class CPLUSPLUS_EXPORT SimpleSpecifierAST: public SpecifierAST
@@ -368,6 +391,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual SimpleSpecifierAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -389,6 +414,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual AttributeSpecifierAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -409,6 +436,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual AttributeAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -428,6 +457,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual TypeofSpecifierAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -450,6 +481,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual DeclaratorAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -472,6 +505,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual SimpleDeclarationAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -488,6 +523,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual EmptyDeclarationAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -506,6 +543,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual AccessDeclarationAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -631,6 +670,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual AsmDefinitionAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -652,6 +693,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual BaseSpecifierAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -671,6 +714,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual CompoundLiteralAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -690,6 +735,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual QtMethodAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -709,6 +756,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual QtMemberDeclarationAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -727,6 +776,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual BinaryExpressionAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -746,6 +797,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual CastExpressionAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -772,6 +825,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ClassSpecifierAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -791,6 +846,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual CaseStatementAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -812,6 +869,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual CompoundStatementAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -829,6 +888,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ConditionAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -849,6 +910,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ConditionalExpressionAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -871,6 +934,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual CppCastExpressionAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -888,6 +953,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual CtorInitializerAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -904,6 +971,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual DeclarationStatementAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -920,6 +989,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual DeclaratorIdAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -938,6 +1009,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual NestedDeclaratorAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -962,6 +1035,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual FunctionDeclaratorAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -980,6 +1055,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ArrayDeclaratorAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1000,6 +1077,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual DeleteExpressionAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1022,6 +1101,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual DoStatementAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1038,6 +1119,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual NamedTypeSpecifierAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1055,6 +1138,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ElaboratedTypeSpecifierAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1075,6 +1160,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual EnumSpecifierAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1093,6 +1180,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual EnumeratorAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1111,6 +1200,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ExceptionDeclarationAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1131,6 +1222,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ExceptionSpecificationAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1148,6 +1241,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ExpressionOrDeclarationStatementAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1165,6 +1260,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ExpressionStatementAST *clone(MemoryPool *pool) const;;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1188,6 +1285,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual FunctionDefinitionAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1217,6 +1316,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ForeachStatementAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1243,6 +1344,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ForStatementAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1268,6 +1371,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual IfStatementAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1286,6 +1391,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ArrayInitializerAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1304,6 +1411,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual LabeledStatementAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1321,6 +1430,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual LinkageBodyAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1339,6 +1450,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual LinkageSpecificationAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1358,6 +1471,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual MemInitializerAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1375,6 +1490,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual NestedNameSpecifierAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1393,6 +1510,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual QualifiedNameAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1410,6 +1529,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual OperatorFunctionIdAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1428,6 +1549,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ConversionFunctionIdAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1444,6 +1567,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual SimpleNameAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1461,6 +1586,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual DestructorNameAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1480,6 +1607,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual TemplateIdAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1502,6 +1631,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual NamespaceAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1522,6 +1653,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual NamespaceAliasDefinitionAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1540,6 +1673,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual NewPlacementAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1558,6 +1693,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual NewArrayDeclaratorAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1584,6 +1721,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual NewExpressionAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1602,6 +1741,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual NewInitializerAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1620,6 +1761,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual NewTypeIdAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1638,6 +1781,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual OperatorAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1660,6 +1805,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ParameterDeclarationAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1677,6 +1824,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ParameterDeclarationClauseAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1695,6 +1844,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual CallAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1713,6 +1864,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ArrayAccessAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1729,6 +1882,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual PostIncrDecrAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1747,6 +1902,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual MemberAccessAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1766,6 +1923,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual TypeidExpressionAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1786,6 +1945,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual TypenameCallExpressionAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1805,6 +1966,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual TypeConstructorCallAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1822,6 +1985,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual PostfixExpressionAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1841,6 +2006,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual PointerToMemberAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1858,6 +2025,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual PointerAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1874,6 +2043,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ReferenceAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1891,6 +2062,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual BreakStatementAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1908,6 +2081,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ContinueStatementAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1926,6 +2101,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual GotoStatementAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1944,6 +2121,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ReturnStatementAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1963,6 +2142,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual SizeofExpressionAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1979,6 +2160,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual NumericLiteralAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -1995,6 +2178,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual BoolLiteralAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2011,6 +2196,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ThisExpressionAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2029,6 +2216,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual NestedExpressionAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2046,6 +2235,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual StringLiteralAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2069,6 +2260,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual SwitchStatementAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2090,6 +2283,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual TemplateDeclarationAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2107,6 +2302,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ThrowExpressionAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2123,6 +2320,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual TranslationUnitAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2141,6 +2340,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual TryBlockStatementAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2164,6 +2365,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual CatchClauseAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2181,6 +2384,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual TypeIdAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2203,6 +2408,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual TypenameTypeParameterAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2229,6 +2436,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual TemplateTypeParameterAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2246,6 +2455,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual UnaryExpressionAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2268,6 +2479,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual UsingAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2290,6 +2503,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual UsingDirectiveAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2313,6 +2528,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual WhileStatementAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2335,6 +2552,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ObjCClassForwardDeclarationAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2366,6 +2585,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ObjCClassDeclarationAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2388,6 +2609,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ObjCProtocolForwardDeclarationAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2412,6 +2635,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ObjCProtocolDeclarationAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2430,6 +2655,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ObjCProtocolRefsAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2446,6 +2673,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ObjCMessageArgumentAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2466,6 +2695,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ObjCMessageExpressionAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2485,6 +2716,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ObjCProtocolExpressionAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2494,7 +2727,7 @@ class CPLUSPLUS_EXPORT ObjCTypeNameAST: public AST
{
public:
unsigned lparen_token;
- unsigned type_qualifier;
+ unsigned type_qualifier_token;
ExpressionAST *type_id;
unsigned rparen_token;
@@ -2504,6 +2737,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ObjCTypeNameAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2521,6 +2756,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ObjCEncodeExpressionAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2537,6 +2774,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ObjCSelectorWithoutArgumentsAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2554,6 +2793,8 @@ public:
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 *);
@@ -2570,6 +2811,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ObjCSelectorWithArgumentsAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2589,6 +2832,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ObjCSelectorExpressionAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2607,6 +2852,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ObjCInstanceVariablesDeclarationAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2623,6 +2870,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ObjCVisibilityDeclarationAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2641,6 +2890,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ObjCPropertyAttributeAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2665,6 +2916,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ObjCPropertyDeclarationAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2686,6 +2939,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ObjCMessageArgumentDeclarationAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2710,6 +2965,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ObjCMethodPrototypeAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2728,6 +2985,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ObjCMethodDeclarationAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2736,9 +2995,9 @@ protected:
class CPLUSPLUS_EXPORT ObjCSynthesizedPropertyAST: public AST
{
public:
- unsigned property_identifier;
+ unsigned property_identifier_token;
unsigned equals_token;
- unsigned property_alias_identifier;
+ unsigned alias_identifier_token;
public:
virtual ObjCSynthesizedPropertyAST *asObjCSynthesizedProperty() { return this; }
@@ -2746,6 +3005,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ObjCSynthesizedPropertyAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2764,6 +3025,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ObjCSynthesizedPropertiesDeclarationAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2782,6 +3045,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ObjCDynamicPropertiesDeclarationAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2813,6 +3078,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ObjCFastEnumerationAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
@@ -2833,6 +3100,8 @@ public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
+ virtual ObjCSynchronizedStatementAST *clone(MemoryPool *pool) const;
+
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);