| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806 |
- // Copyright (c) 2008 Roberto Raggi <[email protected]>
- //
- // 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.
- //
- // W A R N I N G
- // -------------
- //
- // This file is automatically generated by "cplusplus-update-frontend".
- // Changes will be lost.
- //
- #include "AST.h"
- #include "MemoryPool.h"
- using namespace CPlusPlus;
- ObjCSelectorArgumentAST *ObjCSelectorArgumentAST::clone(MemoryPool *pool) const
- {
- ObjCSelectorArgumentAST *ast = new (pool) ObjCSelectorArgumentAST;
- ast->name_token = name_token;
- ast->colon_token = colon_token;
- return ast;
- }
- ObjCSelectorAST *ObjCSelectorAST::clone(MemoryPool *pool) const
- {
- ObjCSelectorAST *ast = new (pool) ObjCSelectorAST;
- for (ObjCSelectorArgumentListAST *iter = selector_argument_list, **ast_iter = &ast->selector_argument_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) ObjCSelectorArgumentListAST((iter->value) ? iter->value->clone(pool) : 0);
- return ast;
- }
- SimpleSpecifierAST *SimpleSpecifierAST::clone(MemoryPool *pool) const
- {
- SimpleSpecifierAST *ast = new (pool) SimpleSpecifierAST;
- ast->specifier_token = specifier_token;
- return ast;
- }
- AlignmentSpecifierAST *AlignmentSpecifierAST::clone(MemoryPool *pool) const
- {
- AlignmentSpecifierAST *ast = new (pool) AlignmentSpecifierAST;
- ast->align_token = align_token;
- ast->lparen_token = lparen_token;
- if (typeIdExprOrAlignmentExpr)
- ast->typeIdExprOrAlignmentExpr = typeIdExprOrAlignmentExpr->clone(pool);
- ast->ellipses_token = ellipses_token;
- ast->rparen_token = rparen_token;
- return ast;
- }
- GnuAttributeSpecifierAST *GnuAttributeSpecifierAST::clone(MemoryPool *pool) const
- {
- GnuAttributeSpecifierAST *ast = new (pool) GnuAttributeSpecifierAST;
- ast->attribute_token = attribute_token;
- ast->first_lparen_token = first_lparen_token;
- ast->second_lparen_token = second_lparen_token;
- for (GnuAttributeListAST *iter = attribute_list, **ast_iter = &ast->attribute_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) GnuAttributeListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->first_rparen_token = first_rparen_token;
- ast->second_rparen_token = second_rparen_token;
- return ast;
- }
- GnuAttributeAST *GnuAttributeAST::clone(MemoryPool *pool) const
- {
- GnuAttributeAST *ast = new (pool) GnuAttributeAST;
- ast->identifier_token = identifier_token;
- ast->lparen_token = lparen_token;
- ast->tag_token = tag_token;
- for (ExpressionListAST *iter = expression_list, **ast_iter = &ast->expression_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) ExpressionListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->rparen_token = rparen_token;
- return ast;
- }
- TypeofSpecifierAST *TypeofSpecifierAST::clone(MemoryPool *pool) const
- {
- TypeofSpecifierAST *ast = new (pool) TypeofSpecifierAST;
- ast->typeof_token = typeof_token;
- ast->lparen_token = lparen_token;
- if (expression)
- ast->expression = expression->clone(pool);
- ast->rparen_token = rparen_token;
- return ast;
- }
- DecltypeSpecifierAST *DecltypeSpecifierAST::clone(MemoryPool *pool) const
- {
- DecltypeSpecifierAST *ast = new (pool) DecltypeSpecifierAST;
- ast->decltype_token = decltype_token;
- ast->lparen_token = lparen_token;
- if (expression)
- ast->expression = expression->clone(pool);
- ast->rparen_token = rparen_token;
- return ast;
- }
- DeclaratorAST *DeclaratorAST::clone(MemoryPool *pool) const
- {
- DeclaratorAST *ast = new (pool) DeclaratorAST;
- for (SpecifierListAST *iter = attribute_list, **ast_iter = &ast->attribute_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- for (PtrOperatorListAST *iter = ptr_operator_list, **ast_iter = &ast->ptr_operator_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) PtrOperatorListAST((iter->value) ? iter->value->clone(pool) : 0);
- if (core_declarator)
- ast->core_declarator = core_declarator->clone(pool);
- for (PostfixDeclaratorListAST *iter = postfix_declarator_list, **ast_iter = &ast->postfix_declarator_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) PostfixDeclaratorListAST((iter->value) ? iter->value->clone(pool) : 0);
- for (SpecifierListAST *iter = post_attribute_list, **ast_iter = &ast->post_attribute_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->equal_token = equal_token;
- if (initializer)
- ast->initializer = initializer->clone(pool);
- return ast;
- }
- SimpleDeclarationAST *SimpleDeclarationAST::clone(MemoryPool *pool) const
- {
- SimpleDeclarationAST *ast = new (pool) SimpleDeclarationAST;
- ast->qt_invokable_token = qt_invokable_token;
- for (SpecifierListAST *iter = decl_specifier_list, **ast_iter = &ast->decl_specifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- for (DeclaratorListAST *iter = declarator_list, **ast_iter = &ast->declarator_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) DeclaratorListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->semicolon_token = semicolon_token;
- return ast;
- }
- EmptyDeclarationAST *EmptyDeclarationAST::clone(MemoryPool *pool) const
- {
- EmptyDeclarationAST *ast = new (pool) EmptyDeclarationAST;
- ast->semicolon_token = semicolon_token;
- return ast;
- }
- AccessDeclarationAST *AccessDeclarationAST::clone(MemoryPool *pool) const
- {
- AccessDeclarationAST *ast = new (pool) AccessDeclarationAST;
- ast->access_specifier_token = access_specifier_token;
- ast->slots_token = slots_token;
- ast->colon_token = colon_token;
- return ast;
- }
- QtObjectTagAST *QtObjectTagAST::clone(MemoryPool *pool) const
- {
- QtObjectTagAST *ast = new (pool) QtObjectTagAST;
- ast->q_object_token = q_object_token;
- return ast;
- }
- QtPrivateSlotAST *QtPrivateSlotAST::clone(MemoryPool *pool) const
- {
- QtPrivateSlotAST *ast = new (pool) QtPrivateSlotAST;
- ast->q_private_slot_token = q_private_slot_token;
- ast->lparen_token = lparen_token;
- ast->dptr_token = dptr_token;
- ast->dptr_lparen_token = dptr_lparen_token;
- ast->dptr_rparen_token = dptr_rparen_token;
- ast->comma_token = comma_token;
- for (SpecifierListAST *iter = type_specifier_list, **ast_iter = &ast->type_specifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- if (declarator)
- ast->declarator = declarator->clone(pool);
- ast->rparen_token = rparen_token;
- return ast;
- }
- QtPropertyDeclarationItemAST *QtPropertyDeclarationItemAST::clone(MemoryPool *pool) const
- {
- QtPropertyDeclarationItemAST *ast = new (pool) QtPropertyDeclarationItemAST;
- ast->item_name_token = item_name_token;
- if (expression)
- ast->expression = expression->clone(pool);
- return ast;
- }
- QtPropertyDeclarationAST *QtPropertyDeclarationAST::clone(MemoryPool *pool) const
- {
- QtPropertyDeclarationAST *ast = new (pool) QtPropertyDeclarationAST;
- ast->property_specifier_token = property_specifier_token;
- ast->lparen_token = lparen_token;
- if (expression)
- ast->expression = expression->clone(pool);
- ast->comma_token = comma_token;
- if (type_id)
- ast->type_id = type_id->clone(pool);
- if (property_name)
- ast->property_name = property_name->clone(pool);
- for (QtPropertyDeclarationItemListAST *iter = property_declaration_item_list, **ast_iter = &ast->property_declaration_item_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) QtPropertyDeclarationItemListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->rparen_token = rparen_token;
- return ast;
- }
- QtEnumDeclarationAST *QtEnumDeclarationAST::clone(MemoryPool *pool) const
- {
- QtEnumDeclarationAST *ast = new (pool) QtEnumDeclarationAST;
- ast->enum_specifier_token = enum_specifier_token;
- ast->lparen_token = lparen_token;
- for (NameListAST *iter = enumerator_list, **ast_iter = &ast->enumerator_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) NameListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->rparen_token = rparen_token;
- return ast;
- }
- QtFlagsDeclarationAST *QtFlagsDeclarationAST::clone(MemoryPool *pool) const
- {
- QtFlagsDeclarationAST *ast = new (pool) QtFlagsDeclarationAST;
- ast->flags_specifier_token = flags_specifier_token;
- ast->lparen_token = lparen_token;
- for (NameListAST *iter = flag_enums_list, **ast_iter = &ast->flag_enums_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) NameListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->rparen_token = rparen_token;
- return ast;
- }
- QtInterfaceNameAST *QtInterfaceNameAST::clone(MemoryPool *pool) const
- {
- QtInterfaceNameAST *ast = new (pool) QtInterfaceNameAST;
- if (interface_name)
- ast->interface_name = interface_name->clone(pool);
- for (NameListAST *iter = constraint_list, **ast_iter = &ast->constraint_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) NameListAST((iter->value) ? iter->value->clone(pool) : 0);
- return ast;
- }
- QtInterfacesDeclarationAST *QtInterfacesDeclarationAST::clone(MemoryPool *pool) const
- {
- QtInterfacesDeclarationAST *ast = new (pool) QtInterfacesDeclarationAST;
- ast->interfaces_token = interfaces_token;
- ast->lparen_token = lparen_token;
- for (QtInterfaceNameListAST *iter = interface_name_list, **ast_iter = &ast->interface_name_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) QtInterfaceNameListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->rparen_token = rparen_token;
- return ast;
- }
- AsmDefinitionAST *AsmDefinitionAST::clone(MemoryPool *pool) const
- {
- AsmDefinitionAST *ast = new (pool) AsmDefinitionAST;
- ast->asm_token = asm_token;
- ast->volatile_token = volatile_token;
- ast->lparen_token = lparen_token;
- ast->rparen_token = rparen_token;
- ast->semicolon_token = semicolon_token;
- return ast;
- }
- BaseSpecifierAST *BaseSpecifierAST::clone(MemoryPool *pool) const
- {
- BaseSpecifierAST *ast = new (pool) BaseSpecifierAST;
- ast->virtual_token = virtual_token;
- ast->access_specifier_token = access_specifier_token;
- if (name)
- ast->name = name->clone(pool);
- return ast;
- }
- IdExpressionAST *IdExpressionAST::clone(MemoryPool *pool) const
- {
- IdExpressionAST *ast = new (pool) IdExpressionAST;
- if (name)
- ast->name = name->clone(pool);
- return ast;
- }
- CompoundExpressionAST *CompoundExpressionAST::clone(MemoryPool *pool) const
- {
- CompoundExpressionAST *ast = new (pool) CompoundExpressionAST;
- ast->lparen_token = lparen_token;
- if (statement)
- ast->statement = statement->clone(pool);
- ast->rparen_token = rparen_token;
- return ast;
- }
- CompoundLiteralAST *CompoundLiteralAST::clone(MemoryPool *pool) const
- {
- CompoundLiteralAST *ast = new (pool) CompoundLiteralAST;
- ast->lparen_token = lparen_token;
- if (type_id)
- ast->type_id = type_id->clone(pool);
- ast->rparen_token = rparen_token;
- if (initializer)
- ast->initializer = initializer->clone(pool);
- return ast;
- }
- QtMethodAST *QtMethodAST::clone(MemoryPool *pool) const
- {
- QtMethodAST *ast = new (pool) QtMethodAST;
- ast->method_token = method_token;
- ast->lparen_token = lparen_token;
- if (declarator)
- ast->declarator = declarator->clone(pool);
- ast->rparen_token = rparen_token;
- return ast;
- }
- QtMemberDeclarationAST *QtMemberDeclarationAST::clone(MemoryPool *pool) const
- {
- QtMemberDeclarationAST *ast = new (pool) QtMemberDeclarationAST;
- ast->q_token = q_token;
- ast->lparen_token = lparen_token;
- if (type_id)
- ast->type_id = type_id->clone(pool);
- ast->rparen_token = rparen_token;
- return ast;
- }
- BinaryExpressionAST *BinaryExpressionAST::clone(MemoryPool *pool) const
- {
- BinaryExpressionAST *ast = new (pool) BinaryExpressionAST;
- if (left_expression)
- ast->left_expression = left_expression->clone(pool);
- ast->binary_op_token = binary_op_token;
- if (right_expression)
- ast->right_expression = right_expression->clone(pool);
- return ast;
- }
- CastExpressionAST *CastExpressionAST::clone(MemoryPool *pool) const
- {
- CastExpressionAST *ast = new (pool) CastExpressionAST;
- ast->lparen_token = lparen_token;
- if (type_id)
- ast->type_id = type_id->clone(pool);
- ast->rparen_token = rparen_token;
- if (expression)
- ast->expression = expression->clone(pool);
- return ast;
- }
- ClassSpecifierAST *ClassSpecifierAST::clone(MemoryPool *pool) const
- {
- ClassSpecifierAST *ast = new (pool) ClassSpecifierAST;
- ast->classkey_token = classkey_token;
- for (SpecifierListAST *iter = attribute_list, **ast_iter = &ast->attribute_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- if (name)
- ast->name = name->clone(pool);
- ast->final_token = final_token;
- ast->colon_token = colon_token;
- for (BaseSpecifierListAST *iter = base_clause_list, **ast_iter = &ast->base_clause_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) BaseSpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->dot_dot_dot_token = dot_dot_dot_token;
- ast->lbrace_token = lbrace_token;
- for (DeclarationListAST *iter = member_specifier_list, **ast_iter = &ast->member_specifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) DeclarationListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->rbrace_token = rbrace_token;
- return ast;
- }
- CaseStatementAST *CaseStatementAST::clone(MemoryPool *pool) const
- {
- CaseStatementAST *ast = new (pool) CaseStatementAST;
- ast->case_token = case_token;
- if (expression)
- ast->expression = expression->clone(pool);
- ast->colon_token = colon_token;
- if (statement)
- ast->statement = statement->clone(pool);
- return ast;
- }
- CompoundStatementAST *CompoundStatementAST::clone(MemoryPool *pool) const
- {
- CompoundStatementAST *ast = new (pool) CompoundStatementAST;
- ast->lbrace_token = lbrace_token;
- for (StatementListAST *iter = statement_list, **ast_iter = &ast->statement_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) StatementListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->rbrace_token = rbrace_token;
- return ast;
- }
- ConditionAST *ConditionAST::clone(MemoryPool *pool) const
- {
- ConditionAST *ast = new (pool) ConditionAST;
- for (SpecifierListAST *iter = type_specifier_list, **ast_iter = &ast->type_specifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- if (declarator)
- ast->declarator = declarator->clone(pool);
- return ast;
- }
- ConditionalExpressionAST *ConditionalExpressionAST::clone(MemoryPool *pool) const
- {
- ConditionalExpressionAST *ast = new (pool) ConditionalExpressionAST;
- if (condition)
- ast->condition = condition->clone(pool);
- ast->question_token = question_token;
- if (left_expression)
- ast->left_expression = left_expression->clone(pool);
- ast->colon_token = colon_token;
- if (right_expression)
- ast->right_expression = right_expression->clone(pool);
- return ast;
- }
- CppCastExpressionAST *CppCastExpressionAST::clone(MemoryPool *pool) const
- {
- CppCastExpressionAST *ast = new (pool) CppCastExpressionAST;
- ast->cast_token = cast_token;
- ast->less_token = less_token;
- if (type_id)
- ast->type_id = type_id->clone(pool);
- ast->greater_token = greater_token;
- ast->lparen_token = lparen_token;
- if (expression)
- ast->expression = expression->clone(pool);
- ast->rparen_token = rparen_token;
- return ast;
- }
- CtorInitializerAST *CtorInitializerAST::clone(MemoryPool *pool) const
- {
- CtorInitializerAST *ast = new (pool) CtorInitializerAST;
- ast->colon_token = colon_token;
- for (MemInitializerListAST *iter = member_initializer_list, **ast_iter = &ast->member_initializer_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) MemInitializerListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->dot_dot_dot_token = dot_dot_dot_token;
- return ast;
- }
- DeclarationStatementAST *DeclarationStatementAST::clone(MemoryPool *pool) const
- {
- DeclarationStatementAST *ast = new (pool) DeclarationStatementAST;
- if (declaration)
- ast->declaration = declaration->clone(pool);
- return ast;
- }
- DeclaratorIdAST *DeclaratorIdAST::clone(MemoryPool *pool) const
- {
- DeclaratorIdAST *ast = new (pool) DeclaratorIdAST;
- ast->dot_dot_dot_token = dot_dot_dot_token;
- if (name)
- ast->name = name->clone(pool);
- return ast;
- }
- NestedDeclaratorAST *NestedDeclaratorAST::clone(MemoryPool *pool) const
- {
- NestedDeclaratorAST *ast = new (pool) NestedDeclaratorAST;
- ast->lparen_token = lparen_token;
- if (declarator)
- ast->declarator = declarator->clone(pool);
- ast->rparen_token = rparen_token;
- return ast;
- }
- FunctionDeclaratorAST *FunctionDeclaratorAST::clone(MemoryPool *pool) const
- {
- FunctionDeclaratorAST *ast = new (pool) FunctionDeclaratorAST;
- ast->lparen_token = lparen_token;
- if (parameter_declaration_clause)
- ast->parameter_declaration_clause = parameter_declaration_clause->clone(pool);
- ast->rparen_token = rparen_token;
- for (SpecifierListAST *iter = cv_qualifier_list, **ast_iter = &ast->cv_qualifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->ref_qualifier_token = ref_qualifier_token;
- if (exception_specification)
- ast->exception_specification = exception_specification->clone(pool);
- if (trailing_return_type)
- ast->trailing_return_type = trailing_return_type->clone(pool);
- if (as_cpp_initializer)
- ast->as_cpp_initializer = as_cpp_initializer->clone(pool);
- return ast;
- }
- ArrayDeclaratorAST *ArrayDeclaratorAST::clone(MemoryPool *pool) const
- {
- ArrayDeclaratorAST *ast = new (pool) ArrayDeclaratorAST;
- ast->lbracket_token = lbracket_token;
- if (expression)
- ast->expression = expression->clone(pool);
- ast->rbracket_token = rbracket_token;
- return ast;
- }
- DeleteExpressionAST *DeleteExpressionAST::clone(MemoryPool *pool) const
- {
- DeleteExpressionAST *ast = new (pool) DeleteExpressionAST;
- ast->scope_token = scope_token;
- ast->delete_token = delete_token;
- ast->lbracket_token = lbracket_token;
- ast->rbracket_token = rbracket_token;
- if (expression)
- ast->expression = expression->clone(pool);
- return ast;
- }
- DoStatementAST *DoStatementAST::clone(MemoryPool *pool) const
- {
- DoStatementAST *ast = new (pool) DoStatementAST;
- ast->do_token = do_token;
- if (statement)
- ast->statement = statement->clone(pool);
- ast->while_token = while_token;
- ast->lparen_token = lparen_token;
- if (expression)
- ast->expression = expression->clone(pool);
- ast->rparen_token = rparen_token;
- ast->semicolon_token = semicolon_token;
- return ast;
- }
- NamedTypeSpecifierAST *NamedTypeSpecifierAST::clone(MemoryPool *pool) const
- {
- NamedTypeSpecifierAST *ast = new (pool) NamedTypeSpecifierAST;
- if (name)
- ast->name = name->clone(pool);
- return ast;
- }
- ElaboratedTypeSpecifierAST *ElaboratedTypeSpecifierAST::clone(MemoryPool *pool) const
- {
- ElaboratedTypeSpecifierAST *ast = new (pool) ElaboratedTypeSpecifierAST;
- ast->classkey_token = classkey_token;
- for (SpecifierListAST *iter = attribute_list, **ast_iter = &ast->attribute_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- if (name)
- ast->name = name->clone(pool);
- return ast;
- }
- EnumSpecifierAST *EnumSpecifierAST::clone(MemoryPool *pool) const
- {
- EnumSpecifierAST *ast = new (pool) EnumSpecifierAST;
- ast->enum_token = enum_token;
- ast->key_token = key_token;
- if (name)
- ast->name = name->clone(pool);
- ast->colon_token = colon_token;
- for (SpecifierListAST *iter = type_specifier_list, **ast_iter = &ast->type_specifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->lbrace_token = lbrace_token;
- for (EnumeratorListAST *iter = enumerator_list, **ast_iter = &ast->enumerator_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) EnumeratorListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->stray_comma_token = stray_comma_token;
- ast->rbrace_token = rbrace_token;
- return ast;
- }
- EnumeratorAST *EnumeratorAST::clone(MemoryPool *pool) const
- {
- EnumeratorAST *ast = new (pool) EnumeratorAST;
- ast->identifier_token = identifier_token;
- ast->equal_token = equal_token;
- if (expression)
- ast->expression = expression->clone(pool);
- return ast;
- }
- ExceptionDeclarationAST *ExceptionDeclarationAST::clone(MemoryPool *pool) const
- {
- ExceptionDeclarationAST *ast = new (pool) ExceptionDeclarationAST;
- for (SpecifierListAST *iter = type_specifier_list, **ast_iter = &ast->type_specifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- if (declarator)
- ast->declarator = declarator->clone(pool);
- ast->dot_dot_dot_token = dot_dot_dot_token;
- return ast;
- }
- DynamicExceptionSpecificationAST *DynamicExceptionSpecificationAST::clone(MemoryPool *pool) const
- {
- DynamicExceptionSpecificationAST *ast = new (pool) DynamicExceptionSpecificationAST;
- ast->throw_token = throw_token;
- ast->lparen_token = lparen_token;
- ast->dot_dot_dot_token = dot_dot_dot_token;
- for (ExpressionListAST *iter = type_id_list, **ast_iter = &ast->type_id_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) ExpressionListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->rparen_token = rparen_token;
- return ast;
- }
- NoExceptSpecificationAST *NoExceptSpecificationAST::clone(MemoryPool *pool) const
- {
- NoExceptSpecificationAST *ast = new (pool) NoExceptSpecificationAST;
- ast->noexcept_token = noexcept_token;
- ast->lparen_token = lparen_token;
- if (expression)
- ast->expression = expression->clone(pool);
- ast->rparen_token = rparen_token;
- return ast;
- }
- ExpressionOrDeclarationStatementAST *ExpressionOrDeclarationStatementAST::clone(MemoryPool *pool) const
- {
- ExpressionOrDeclarationStatementAST *ast = new (pool) ExpressionOrDeclarationStatementAST;
- if (expression)
- ast->expression = expression->clone(pool);
- if (declaration)
- ast->declaration = declaration->clone(pool);
- return ast;
- }
- ExpressionStatementAST *ExpressionStatementAST::clone(MemoryPool *pool) const
- {
- ExpressionStatementAST *ast = new (pool) ExpressionStatementAST;
- if (expression)
- ast->expression = expression->clone(pool);
- ast->semicolon_token = semicolon_token;
- return ast;
- }
- FunctionDefinitionAST *FunctionDefinitionAST::clone(MemoryPool *pool) const
- {
- FunctionDefinitionAST *ast = new (pool) FunctionDefinitionAST;
- ast->qt_invokable_token = qt_invokable_token;
- for (SpecifierListAST *iter = decl_specifier_list, **ast_iter = &ast->decl_specifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- if (declarator)
- ast->declarator = declarator->clone(pool);
- if (ctor_initializer)
- ast->ctor_initializer = ctor_initializer->clone(pool);
- if (function_body)
- ast->function_body = function_body->clone(pool);
- return ast;
- }
- ForeachStatementAST *ForeachStatementAST::clone(MemoryPool *pool) const
- {
- ForeachStatementAST *ast = new (pool) ForeachStatementAST;
- ast->foreach_token = foreach_token;
- ast->lparen_token = lparen_token;
- for (SpecifierListAST *iter = type_specifier_list, **ast_iter = &ast->type_specifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- if (declarator)
- ast->declarator = declarator->clone(pool);
- if (initializer)
- ast->initializer = initializer->clone(pool);
- ast->comma_token = comma_token;
- if (expression)
- ast->expression = expression->clone(pool);
- ast->rparen_token = rparen_token;
- if (statement)
- ast->statement = statement->clone(pool);
- return ast;
- }
- RangeBasedForStatementAST *RangeBasedForStatementAST::clone(MemoryPool *pool) const
- {
- RangeBasedForStatementAST *ast = new (pool) RangeBasedForStatementAST;
- ast->for_token = for_token;
- ast->lparen_token = lparen_token;
- for (SpecifierListAST *iter = type_specifier_list, **ast_iter = &ast->type_specifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- if (declarator)
- ast->declarator = declarator->clone(pool);
- ast->colon_token = colon_token;
- if (expression)
- ast->expression = expression->clone(pool);
- ast->rparen_token = rparen_token;
- if (statement)
- ast->statement = statement->clone(pool);
- return ast;
- }
- ForStatementAST *ForStatementAST::clone(MemoryPool *pool) const
- {
- ForStatementAST *ast = new (pool) ForStatementAST;
- ast->for_token = for_token;
- ast->lparen_token = lparen_token;
- if (initializer)
- ast->initializer = initializer->clone(pool);
- if (condition)
- ast->condition = condition->clone(pool);
- ast->semicolon_token = semicolon_token;
- if (expression)
- ast->expression = expression->clone(pool);
- ast->rparen_token = rparen_token;
- if (statement)
- ast->statement = statement->clone(pool);
- return ast;
- }
- IfStatementAST *IfStatementAST::clone(MemoryPool *pool) const
- {
- IfStatementAST *ast = new (pool) IfStatementAST;
- ast->if_token = if_token;
- ast->lparen_token = lparen_token;
- if (condition)
- ast->condition = condition->clone(pool);
- ast->rparen_token = rparen_token;
- if (statement)
- ast->statement = statement->clone(pool);
- ast->else_token = else_token;
- if (else_statement)
- ast->else_statement = else_statement->clone(pool);
- return ast;
- }
- ArrayInitializerAST *ArrayInitializerAST::clone(MemoryPool *pool) const
- {
- ArrayInitializerAST *ast = new (pool) ArrayInitializerAST;
- ast->lbrace_token = lbrace_token;
- for (ExpressionListAST *iter = expression_list, **ast_iter = &ast->expression_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) ExpressionListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->rbrace_token = rbrace_token;
- return ast;
- }
- LabeledStatementAST *LabeledStatementAST::clone(MemoryPool *pool) const
- {
- LabeledStatementAST *ast = new (pool) LabeledStatementAST;
- ast->label_token = label_token;
- ast->colon_token = colon_token;
- if (statement)
- ast->statement = statement->clone(pool);
- return ast;
- }
- LinkageBodyAST *LinkageBodyAST::clone(MemoryPool *pool) const
- {
- LinkageBodyAST *ast = new (pool) LinkageBodyAST;
- ast->lbrace_token = lbrace_token;
- for (DeclarationListAST *iter = declaration_list, **ast_iter = &ast->declaration_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) DeclarationListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->rbrace_token = rbrace_token;
- return ast;
- }
- LinkageSpecificationAST *LinkageSpecificationAST::clone(MemoryPool *pool) const
- {
- LinkageSpecificationAST *ast = new (pool) LinkageSpecificationAST;
- ast->extern_token = extern_token;
- ast->extern_type_token = extern_type_token;
- if (declaration)
- ast->declaration = declaration->clone(pool);
- return ast;
- }
- MemInitializerAST *MemInitializerAST::clone(MemoryPool *pool) const
- {
- MemInitializerAST *ast = new (pool) MemInitializerAST;
- if (name)
- ast->name = name->clone(pool);
- if (expression)
- ast->expression = expression->clone(pool);
- return ast;
- }
- NestedNameSpecifierAST *NestedNameSpecifierAST::clone(MemoryPool *pool) const
- {
- NestedNameSpecifierAST *ast = new (pool) NestedNameSpecifierAST;
- if (class_or_namespace_name)
- ast->class_or_namespace_name = class_or_namespace_name->clone(pool);
- ast->scope_token = scope_token;
- return ast;
- }
- QualifiedNameAST *QualifiedNameAST::clone(MemoryPool *pool) const
- {
- QualifiedNameAST *ast = new (pool) QualifiedNameAST;
- ast->global_scope_token = global_scope_token;
- for (NestedNameSpecifierListAST *iter = nested_name_specifier_list, **ast_iter = &ast->nested_name_specifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) NestedNameSpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- if (unqualified_name)
- ast->unqualified_name = unqualified_name->clone(pool);
- return ast;
- }
- OperatorFunctionIdAST *OperatorFunctionIdAST::clone(MemoryPool *pool) const
- {
- OperatorFunctionIdAST *ast = new (pool) OperatorFunctionIdAST;
- ast->operator_token = operator_token;
- if (op)
- ast->op = op->clone(pool);
- return ast;
- }
- ConversionFunctionIdAST *ConversionFunctionIdAST::clone(MemoryPool *pool) const
- {
- ConversionFunctionIdAST *ast = new (pool) ConversionFunctionIdAST;
- ast->operator_token = operator_token;
- for (SpecifierListAST *iter = type_specifier_list, **ast_iter = &ast->type_specifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- for (PtrOperatorListAST *iter = ptr_operator_list, **ast_iter = &ast->ptr_operator_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) PtrOperatorListAST((iter->value) ? iter->value->clone(pool) : 0);
- return ast;
- }
- AnonymousNameAST *AnonymousNameAST::clone(MemoryPool *pool) const
- {
- AnonymousNameAST *ast = new (pool) AnonymousNameAST;
- ast->class_token = class_token;
- return ast;
- }
- SimpleNameAST *SimpleNameAST::clone(MemoryPool *pool) const
- {
- SimpleNameAST *ast = new (pool) SimpleNameAST;
- ast->identifier_token = identifier_token;
- return ast;
- }
- DestructorNameAST *DestructorNameAST::clone(MemoryPool *pool) const
- {
- DestructorNameAST *ast = new (pool) DestructorNameAST;
- ast->tilde_token = tilde_token;
- if (unqualified_name)
- ast->unqualified_name = unqualified_name->clone(pool);
- return ast;
- }
- TemplateIdAST *TemplateIdAST::clone(MemoryPool *pool) const
- {
- TemplateIdAST *ast = new (pool) TemplateIdAST;
- ast->template_token = template_token;
- ast->identifier_token = identifier_token;
- ast->less_token = less_token;
- for (ExpressionListAST *iter = template_argument_list, **ast_iter = &ast->template_argument_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) ExpressionListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->greater_token = greater_token;
- return ast;
- }
- NamespaceAST *NamespaceAST::clone(MemoryPool *pool) const
- {
- NamespaceAST *ast = new (pool) NamespaceAST;
- ast->inline_token = inline_token;
- ast->namespace_token = namespace_token;
- ast->identifier_token = identifier_token;
- for (SpecifierListAST *iter = attribute_list, **ast_iter = &ast->attribute_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- if (linkage_body)
- ast->linkage_body = linkage_body->clone(pool);
- return ast;
- }
- NamespaceAliasDefinitionAST *NamespaceAliasDefinitionAST::clone(MemoryPool *pool) const
- {
- NamespaceAliasDefinitionAST *ast = new (pool) NamespaceAliasDefinitionAST;
- ast->namespace_token = namespace_token;
- ast->namespace_name_token = namespace_name_token;
- ast->equal_token = equal_token;
- if (name)
- ast->name = name->clone(pool);
- ast->semicolon_token = semicolon_token;
- return ast;
- }
- AliasDeclarationAST *AliasDeclarationAST::clone(MemoryPool *pool) const
- {
- AliasDeclarationAST *ast = new (pool) AliasDeclarationAST;
- ast->using_token = using_token;
- if (name)
- ast->name = name->clone(pool);
- ast->equal_token = equal_token;
- if (typeId)
- ast->typeId = typeId->clone(pool);
- ast->semicolon_token = semicolon_token;
- return ast;
- }
- ExpressionListParenAST *ExpressionListParenAST::clone(MemoryPool *pool) const
- {
- ExpressionListParenAST *ast = new (pool) ExpressionListParenAST;
- ast->lparen_token = lparen_token;
- for (ExpressionListAST *iter = expression_list, **ast_iter = &ast->expression_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) ExpressionListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->rparen_token = rparen_token;
- return ast;
- }
- NewArrayDeclaratorAST *NewArrayDeclaratorAST::clone(MemoryPool *pool) const
- {
- NewArrayDeclaratorAST *ast = new (pool) NewArrayDeclaratorAST;
- ast->lbracket_token = lbracket_token;
- if (expression)
- ast->expression = expression->clone(pool);
- ast->rbracket_token = rbracket_token;
- return ast;
- }
- NewExpressionAST *NewExpressionAST::clone(MemoryPool *pool) const
- {
- NewExpressionAST *ast = new (pool) NewExpressionAST;
- ast->scope_token = scope_token;
- ast->new_token = new_token;
- if (new_placement)
- ast->new_placement = new_placement->clone(pool);
- ast->lparen_token = lparen_token;
- if (type_id)
- ast->type_id = type_id->clone(pool);
- ast->rparen_token = rparen_token;
- if (new_type_id)
- ast->new_type_id = new_type_id->clone(pool);
- if (new_initializer)
- ast->new_initializer = new_initializer->clone(pool);
- return ast;
- }
- NewTypeIdAST *NewTypeIdAST::clone(MemoryPool *pool) const
- {
- NewTypeIdAST *ast = new (pool) NewTypeIdAST;
- for (SpecifierListAST *iter = type_specifier_list, **ast_iter = &ast->type_specifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- for (PtrOperatorListAST *iter = ptr_operator_list, **ast_iter = &ast->ptr_operator_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) PtrOperatorListAST((iter->value) ? iter->value->clone(pool) : 0);
- for (NewArrayDeclaratorListAST *iter = new_array_declarator_list, **ast_iter = &ast->new_array_declarator_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) NewArrayDeclaratorListAST((iter->value) ? iter->value->clone(pool) : 0);
- return ast;
- }
- OperatorAST *OperatorAST::clone(MemoryPool *pool) const
- {
- OperatorAST *ast = new (pool) OperatorAST;
- ast->op_token = op_token;
- ast->open_token = open_token;
- ast->close_token = close_token;
- return ast;
- }
- ParameterDeclarationAST *ParameterDeclarationAST::clone(MemoryPool *pool) const
- {
- ParameterDeclarationAST *ast = new (pool) ParameterDeclarationAST;
- for (SpecifierListAST *iter = type_specifier_list, **ast_iter = &ast->type_specifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- if (declarator)
- ast->declarator = declarator->clone(pool);
- ast->equal_token = equal_token;
- if (expression)
- ast->expression = expression->clone(pool);
- return ast;
- }
- ParameterDeclarationClauseAST *ParameterDeclarationClauseAST::clone(MemoryPool *pool) const
- {
- ParameterDeclarationClauseAST *ast = new (pool) ParameterDeclarationClauseAST;
- for (ParameterDeclarationListAST *iter = parameter_declaration_list, **ast_iter = &ast->parameter_declaration_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) ParameterDeclarationListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->dot_dot_dot_token = dot_dot_dot_token;
- return ast;
- }
- CallAST *CallAST::clone(MemoryPool *pool) const
- {
- CallAST *ast = new (pool) CallAST;
- if (base_expression)
- ast->base_expression = base_expression->clone(pool);
- ast->lparen_token = lparen_token;
- for (ExpressionListAST *iter = expression_list, **ast_iter = &ast->expression_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) ExpressionListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->rparen_token = rparen_token;
- return ast;
- }
- ArrayAccessAST *ArrayAccessAST::clone(MemoryPool *pool) const
- {
- ArrayAccessAST *ast = new (pool) ArrayAccessAST;
- if (base_expression)
- ast->base_expression = base_expression->clone(pool);
- ast->lbracket_token = lbracket_token;
- if (expression)
- ast->expression = expression->clone(pool);
- ast->rbracket_token = rbracket_token;
- return ast;
- }
- PostIncrDecrAST *PostIncrDecrAST::clone(MemoryPool *pool) const
- {
- PostIncrDecrAST *ast = new (pool) PostIncrDecrAST;
- if (base_expression)
- ast->base_expression = base_expression->clone(pool);
- ast->incr_decr_token = incr_decr_token;
- return ast;
- }
- MemberAccessAST *MemberAccessAST::clone(MemoryPool *pool) const
- {
- MemberAccessAST *ast = new (pool) MemberAccessAST;
- if (base_expression)
- ast->base_expression = base_expression->clone(pool);
- ast->access_token = access_token;
- ast->template_token = template_token;
- if (member_name)
- ast->member_name = member_name->clone(pool);
- return ast;
- }
- TypeidExpressionAST *TypeidExpressionAST::clone(MemoryPool *pool) const
- {
- TypeidExpressionAST *ast = new (pool) TypeidExpressionAST;
- ast->typeid_token = typeid_token;
- ast->lparen_token = lparen_token;
- if (expression)
- ast->expression = expression->clone(pool);
- ast->rparen_token = rparen_token;
- return ast;
- }
- TypenameCallExpressionAST *TypenameCallExpressionAST::clone(MemoryPool *pool) const
- {
- TypenameCallExpressionAST *ast = new (pool) TypenameCallExpressionAST;
- ast->typename_token = typename_token;
- if (name)
- ast->name = name->clone(pool);
- if (expression)
- ast->expression = expression->clone(pool);
- return ast;
- }
- TypeConstructorCallAST *TypeConstructorCallAST::clone(MemoryPool *pool) const
- {
- TypeConstructorCallAST *ast = new (pool) TypeConstructorCallAST;
- for (SpecifierListAST *iter = type_specifier_list, **ast_iter = &ast->type_specifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- if (expression)
- ast->expression = expression->clone(pool);
- return ast;
- }
- PointerToMemberAST *PointerToMemberAST::clone(MemoryPool *pool) const
- {
- PointerToMemberAST *ast = new (pool) PointerToMemberAST;
- ast->global_scope_token = global_scope_token;
- for (NestedNameSpecifierListAST *iter = nested_name_specifier_list, **ast_iter = &ast->nested_name_specifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) NestedNameSpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->star_token = star_token;
- for (SpecifierListAST *iter = cv_qualifier_list, **ast_iter = &ast->cv_qualifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->ref_qualifier_token = ref_qualifier_token;
- return ast;
- }
- PointerAST *PointerAST::clone(MemoryPool *pool) const
- {
- PointerAST *ast = new (pool) PointerAST;
- ast->star_token = star_token;
- for (SpecifierListAST *iter = cv_qualifier_list, **ast_iter = &ast->cv_qualifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- return ast;
- }
- ReferenceAST *ReferenceAST::clone(MemoryPool *pool) const
- {
- ReferenceAST *ast = new (pool) ReferenceAST;
- ast->reference_token = reference_token;
- return ast;
- }
- BreakStatementAST *BreakStatementAST::clone(MemoryPool *pool) const
- {
- BreakStatementAST *ast = new (pool) BreakStatementAST;
- ast->break_token = break_token;
- ast->semicolon_token = semicolon_token;
- return ast;
- }
- ContinueStatementAST *ContinueStatementAST::clone(MemoryPool *pool) const
- {
- ContinueStatementAST *ast = new (pool) ContinueStatementAST;
- ast->continue_token = continue_token;
- ast->semicolon_token = semicolon_token;
- return ast;
- }
- GotoStatementAST *GotoStatementAST::clone(MemoryPool *pool) const
- {
- GotoStatementAST *ast = new (pool) GotoStatementAST;
- ast->goto_token = goto_token;
- ast->identifier_token = identifier_token;
- ast->semicolon_token = semicolon_token;
- return ast;
- }
- ReturnStatementAST *ReturnStatementAST::clone(MemoryPool *pool) const
- {
- ReturnStatementAST *ast = new (pool) ReturnStatementAST;
- ast->return_token = return_token;
- if (expression)
- ast->expression = expression->clone(pool);
- ast->semicolon_token = semicolon_token;
- return ast;
- }
- SizeofExpressionAST *SizeofExpressionAST::clone(MemoryPool *pool) const
- {
- SizeofExpressionAST *ast = new (pool) SizeofExpressionAST;
- ast->sizeof_token = sizeof_token;
- ast->dot_dot_dot_token = dot_dot_dot_token;
- ast->lparen_token = lparen_token;
- if (expression)
- ast->expression = expression->clone(pool);
- ast->rparen_token = rparen_token;
- return ast;
- }
- AlignofExpressionAST *AlignofExpressionAST::clone(MemoryPool *pool) const
- {
- AlignofExpressionAST *ast = new (pool) AlignofExpressionAST;
- ast->alignof_token = alignof_token;
- ast->lparen_token = lparen_token;
- if (typeId)
- ast->typeId = typeId->clone(pool);
- ast->rparen_token = rparen_token;
- return ast;
- }
- PointerLiteralAST *PointerLiteralAST::clone(MemoryPool *pool) const
- {
- PointerLiteralAST *ast = new (pool) PointerLiteralAST;
- ast->literal_token = literal_token;
- return ast;
- }
- NumericLiteralAST *NumericLiteralAST::clone(MemoryPool *pool) const
- {
- NumericLiteralAST *ast = new (pool) NumericLiteralAST;
- ast->literal_token = literal_token;
- return ast;
- }
- BoolLiteralAST *BoolLiteralAST::clone(MemoryPool *pool) const
- {
- BoolLiteralAST *ast = new (pool) BoolLiteralAST;
- ast->literal_token = literal_token;
- return ast;
- }
- ThisExpressionAST *ThisExpressionAST::clone(MemoryPool *pool) const
- {
- ThisExpressionAST *ast = new (pool) ThisExpressionAST;
- ast->this_token = this_token;
- return ast;
- }
- NestedExpressionAST *NestedExpressionAST::clone(MemoryPool *pool) const
- {
- NestedExpressionAST *ast = new (pool) NestedExpressionAST;
- ast->lparen_token = lparen_token;
- if (expression)
- ast->expression = expression->clone(pool);
- ast->rparen_token = rparen_token;
- return ast;
- }
- StaticAssertDeclarationAST *StaticAssertDeclarationAST::clone(MemoryPool *pool) const
- {
- StaticAssertDeclarationAST *ast = new (pool) StaticAssertDeclarationAST;
- ast->static_assert_token = static_assert_token;
- ast->lparen_token = lparen_token;
- if (expression)
- ast->expression = expression->clone(pool);
- ast->comma_token = comma_token;
- if (string_literal)
- ast->string_literal = string_literal->clone(pool);
- ast->rparen_token = rparen_token;
- ast->semicolon_token = semicolon_token;
- return ast;
- }
- StringLiteralAST *StringLiteralAST::clone(MemoryPool *pool) const
- {
- StringLiteralAST *ast = new (pool) StringLiteralAST;
- ast->literal_token = literal_token;
- if (next)
- ast->next = next->clone(pool);
- return ast;
- }
- SwitchStatementAST *SwitchStatementAST::clone(MemoryPool *pool) const
- {
- SwitchStatementAST *ast = new (pool) SwitchStatementAST;
- ast->switch_token = switch_token;
- ast->lparen_token = lparen_token;
- if (condition)
- ast->condition = condition->clone(pool);
- ast->rparen_token = rparen_token;
- if (statement)
- ast->statement = statement->clone(pool);
- return ast;
- }
- TemplateDeclarationAST *TemplateDeclarationAST::clone(MemoryPool *pool) const
- {
- TemplateDeclarationAST *ast = new (pool) TemplateDeclarationAST;
- ast->export_token = export_token;
- ast->template_token = template_token;
- ast->less_token = less_token;
- for (DeclarationListAST *iter = template_parameter_list, **ast_iter = &ast->template_parameter_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) DeclarationListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->greater_token = greater_token;
- if (declaration)
- ast->declaration = declaration->clone(pool);
- return ast;
- }
- ThrowExpressionAST *ThrowExpressionAST::clone(MemoryPool *pool) const
- {
- ThrowExpressionAST *ast = new (pool) ThrowExpressionAST;
- ast->throw_token = throw_token;
- if (expression)
- ast->expression = expression->clone(pool);
- return ast;
- }
- TranslationUnitAST *TranslationUnitAST::clone(MemoryPool *pool) const
- {
- TranslationUnitAST *ast = new (pool) TranslationUnitAST;
- for (DeclarationListAST *iter = declaration_list, **ast_iter = &ast->declaration_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) DeclarationListAST((iter->value) ? iter->value->clone(pool) : 0);
- return ast;
- }
- TryBlockStatementAST *TryBlockStatementAST::clone(MemoryPool *pool) const
- {
- TryBlockStatementAST *ast = new (pool) TryBlockStatementAST;
- ast->try_token = try_token;
- if (statement)
- ast->statement = statement->clone(pool);
- for (CatchClauseListAST *iter = catch_clause_list, **ast_iter = &ast->catch_clause_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) CatchClauseListAST((iter->value) ? iter->value->clone(pool) : 0);
- return ast;
- }
- CatchClauseAST *CatchClauseAST::clone(MemoryPool *pool) const
- {
- CatchClauseAST *ast = new (pool) CatchClauseAST;
- ast->catch_token = catch_token;
- ast->lparen_token = lparen_token;
- if (exception_declaration)
- ast->exception_declaration = exception_declaration->clone(pool);
- ast->rparen_token = rparen_token;
- if (statement)
- ast->statement = statement->clone(pool);
- return ast;
- }
- TypeIdAST *TypeIdAST::clone(MemoryPool *pool) const
- {
- TypeIdAST *ast = new (pool) TypeIdAST;
- for (SpecifierListAST *iter = type_specifier_list, **ast_iter = &ast->type_specifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- if (declarator)
- ast->declarator = declarator->clone(pool);
- return ast;
- }
- TypenameTypeParameterAST *TypenameTypeParameterAST::clone(MemoryPool *pool) const
- {
- TypenameTypeParameterAST *ast = new (pool) TypenameTypeParameterAST;
- ast->classkey_token = classkey_token;
- ast->dot_dot_dot_token = dot_dot_dot_token;
- if (name)
- ast->name = name->clone(pool);
- ast->equal_token = equal_token;
- if (type_id)
- ast->type_id = type_id->clone(pool);
- return ast;
- }
- TemplateTypeParameterAST *TemplateTypeParameterAST::clone(MemoryPool *pool) const
- {
- TemplateTypeParameterAST *ast = new (pool) TemplateTypeParameterAST;
- ast->template_token = template_token;
- ast->less_token = less_token;
- for (DeclarationListAST *iter = template_parameter_list, **ast_iter = &ast->template_parameter_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) DeclarationListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->greater_token = greater_token;
- ast->class_token = class_token;
- ast->dot_dot_dot_token = dot_dot_dot_token;
- if (name)
- ast->name = name->clone(pool);
- ast->equal_token = equal_token;
- if (type_id)
- ast->type_id = type_id->clone(pool);
- return ast;
- }
- UnaryExpressionAST *UnaryExpressionAST::clone(MemoryPool *pool) const
- {
- UnaryExpressionAST *ast = new (pool) UnaryExpressionAST;
- ast->unary_op_token = unary_op_token;
- if (expression)
- ast->expression = expression->clone(pool);
- return ast;
- }
- UsingAST *UsingAST::clone(MemoryPool *pool) const
- {
- UsingAST *ast = new (pool) UsingAST;
- ast->using_token = using_token;
- ast->typename_token = typename_token;
- if (name)
- ast->name = name->clone(pool);
- ast->semicolon_token = semicolon_token;
- return ast;
- }
- UsingDirectiveAST *UsingDirectiveAST::clone(MemoryPool *pool) const
- {
- UsingDirectiveAST *ast = new (pool) UsingDirectiveAST;
- ast->using_token = using_token;
- ast->namespace_token = namespace_token;
- if (name)
- ast->name = name->clone(pool);
- ast->semicolon_token = semicolon_token;
- return ast;
- }
- WhileStatementAST *WhileStatementAST::clone(MemoryPool *pool) const
- {
- WhileStatementAST *ast = new (pool) WhileStatementAST;
- ast->while_token = while_token;
- ast->lparen_token = lparen_token;
- if (condition)
- ast->condition = condition->clone(pool);
- ast->rparen_token = rparen_token;
- if (statement)
- ast->statement = statement->clone(pool);
- return ast;
- }
- ObjCClassForwardDeclarationAST *ObjCClassForwardDeclarationAST::clone(MemoryPool *pool) const
- {
- ObjCClassForwardDeclarationAST *ast = new (pool) ObjCClassForwardDeclarationAST;
- for (SpecifierListAST *iter = attribute_list, **ast_iter = &ast->attribute_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->class_token = class_token;
- for (NameListAST *iter = identifier_list, **ast_iter = &ast->identifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) NameListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->semicolon_token = semicolon_token;
- return ast;
- }
- ObjCClassDeclarationAST *ObjCClassDeclarationAST::clone(MemoryPool *pool) const
- {
- ObjCClassDeclarationAST *ast = new (pool) ObjCClassDeclarationAST;
- for (SpecifierListAST *iter = attribute_list, **ast_iter = &ast->attribute_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->interface_token = interface_token;
- ast->implementation_token = implementation_token;
- if (class_name)
- ast->class_name = class_name->clone(pool);
- ast->lparen_token = lparen_token;
- if (category_name)
- ast->category_name = category_name->clone(pool);
- ast->rparen_token = rparen_token;
- ast->colon_token = colon_token;
- if (superclass)
- ast->superclass = superclass->clone(pool);
- if (protocol_refs)
- ast->protocol_refs = protocol_refs->clone(pool);
- if (inst_vars_decl)
- ast->inst_vars_decl = inst_vars_decl->clone(pool);
- for (DeclarationListAST *iter = member_declaration_list, **ast_iter = &ast->member_declaration_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) DeclarationListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->end_token = end_token;
- return ast;
- }
- ObjCProtocolForwardDeclarationAST *ObjCProtocolForwardDeclarationAST::clone(MemoryPool *pool) const
- {
- ObjCProtocolForwardDeclarationAST *ast = new (pool) ObjCProtocolForwardDeclarationAST;
- for (SpecifierListAST *iter = attribute_list, **ast_iter = &ast->attribute_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->protocol_token = protocol_token;
- for (NameListAST *iter = identifier_list, **ast_iter = &ast->identifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) NameListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->semicolon_token = semicolon_token;
- return ast;
- }
- ObjCProtocolDeclarationAST *ObjCProtocolDeclarationAST::clone(MemoryPool *pool) const
- {
- ObjCProtocolDeclarationAST *ast = new (pool) ObjCProtocolDeclarationAST;
- for (SpecifierListAST *iter = attribute_list, **ast_iter = &ast->attribute_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->protocol_token = protocol_token;
- if (name)
- ast->name = name->clone(pool);
- if (protocol_refs)
- ast->protocol_refs = protocol_refs->clone(pool);
- for (DeclarationListAST *iter = member_declaration_list, **ast_iter = &ast->member_declaration_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) DeclarationListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->end_token = end_token;
- return ast;
- }
- ObjCProtocolRefsAST *ObjCProtocolRefsAST::clone(MemoryPool *pool) const
- {
- ObjCProtocolRefsAST *ast = new (pool) ObjCProtocolRefsAST;
- ast->less_token = less_token;
- for (NameListAST *iter = identifier_list, **ast_iter = &ast->identifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) NameListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->greater_token = greater_token;
- return ast;
- }
- ObjCMessageArgumentAST *ObjCMessageArgumentAST::clone(MemoryPool *pool) const
- {
- ObjCMessageArgumentAST *ast = new (pool) ObjCMessageArgumentAST;
- if (parameter_value_expression)
- ast->parameter_value_expression = parameter_value_expression->clone(pool);
- return ast;
- }
- ObjCMessageExpressionAST *ObjCMessageExpressionAST::clone(MemoryPool *pool) const
- {
- ObjCMessageExpressionAST *ast = new (pool) ObjCMessageExpressionAST;
- ast->lbracket_token = lbracket_token;
- if (receiver_expression)
- ast->receiver_expression = receiver_expression->clone(pool);
- if (selector)
- ast->selector = selector->clone(pool);
- for (ObjCMessageArgumentListAST *iter = argument_list, **ast_iter = &ast->argument_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) ObjCMessageArgumentListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->rbracket_token = rbracket_token;
- return ast;
- }
- ObjCProtocolExpressionAST *ObjCProtocolExpressionAST::clone(MemoryPool *pool) const
- {
- ObjCProtocolExpressionAST *ast = new (pool) ObjCProtocolExpressionAST;
- ast->protocol_token = protocol_token;
- ast->lparen_token = lparen_token;
- ast->identifier_token = identifier_token;
- ast->rparen_token = rparen_token;
- return ast;
- }
- ObjCTypeNameAST *ObjCTypeNameAST::clone(MemoryPool *pool) const
- {
- ObjCTypeNameAST *ast = new (pool) ObjCTypeNameAST;
- ast->lparen_token = lparen_token;
- ast->type_qualifier_token = type_qualifier_token;
- if (type_id)
- ast->type_id = type_id->clone(pool);
- ast->rparen_token = rparen_token;
- return ast;
- }
- ObjCEncodeExpressionAST *ObjCEncodeExpressionAST::clone(MemoryPool *pool) const
- {
- ObjCEncodeExpressionAST *ast = new (pool) ObjCEncodeExpressionAST;
- ast->encode_token = encode_token;
- if (type_name)
- ast->type_name = type_name->clone(pool);
- return ast;
- }
- ObjCSelectorExpressionAST *ObjCSelectorExpressionAST::clone(MemoryPool *pool) const
- {
- ObjCSelectorExpressionAST *ast = new (pool) ObjCSelectorExpressionAST;
- ast->selector_token = selector_token;
- ast->lparen_token = lparen_token;
- if (selector)
- ast->selector = selector->clone(pool);
- ast->rparen_token = rparen_token;
- return ast;
- }
- ObjCInstanceVariablesDeclarationAST *ObjCInstanceVariablesDeclarationAST::clone(MemoryPool *pool) const
- {
- ObjCInstanceVariablesDeclarationAST *ast = new (pool) ObjCInstanceVariablesDeclarationAST;
- ast->lbrace_token = lbrace_token;
- for (DeclarationListAST *iter = instance_variable_list, **ast_iter = &ast->instance_variable_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) DeclarationListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->rbrace_token = rbrace_token;
- return ast;
- }
- ObjCVisibilityDeclarationAST *ObjCVisibilityDeclarationAST::clone(MemoryPool *pool) const
- {
- ObjCVisibilityDeclarationAST *ast = new (pool) ObjCVisibilityDeclarationAST;
- ast->visibility_token = visibility_token;
- return ast;
- }
- ObjCPropertyAttributeAST *ObjCPropertyAttributeAST::clone(MemoryPool *pool) const
- {
- ObjCPropertyAttributeAST *ast = new (pool) ObjCPropertyAttributeAST;
- ast->attribute_identifier_token = attribute_identifier_token;
- ast->equals_token = equals_token;
- if (method_selector)
- ast->method_selector = method_selector->clone(pool);
- return ast;
- }
- ObjCPropertyDeclarationAST *ObjCPropertyDeclarationAST::clone(MemoryPool *pool) const
- {
- ObjCPropertyDeclarationAST *ast = new (pool) ObjCPropertyDeclarationAST;
- for (SpecifierListAST *iter = attribute_list, **ast_iter = &ast->attribute_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->property_token = property_token;
- ast->lparen_token = lparen_token;
- for (ObjCPropertyAttributeListAST *iter = property_attribute_list, **ast_iter = &ast->property_attribute_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) ObjCPropertyAttributeListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->rparen_token = rparen_token;
- if (simple_declaration)
- ast->simple_declaration = simple_declaration->clone(pool);
- return ast;
- }
- ObjCMessageArgumentDeclarationAST *ObjCMessageArgumentDeclarationAST::clone(MemoryPool *pool) const
- {
- ObjCMessageArgumentDeclarationAST *ast = new (pool) ObjCMessageArgumentDeclarationAST;
- if (type_name)
- ast->type_name = type_name->clone(pool);
- for (SpecifierListAST *iter = attribute_list, **ast_iter = &ast->attribute_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- if (param_name)
- ast->param_name = param_name->clone(pool);
- return ast;
- }
- ObjCMethodPrototypeAST *ObjCMethodPrototypeAST::clone(MemoryPool *pool) const
- {
- ObjCMethodPrototypeAST *ast = new (pool) ObjCMethodPrototypeAST;
- ast->method_type_token = method_type_token;
- if (type_name)
- ast->type_name = type_name->clone(pool);
- if (selector)
- ast->selector = selector->clone(pool);
- for (ObjCMessageArgumentDeclarationListAST *iter = argument_list, **ast_iter = &ast->argument_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) ObjCMessageArgumentDeclarationListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->dot_dot_dot_token = dot_dot_dot_token;
- for (SpecifierListAST *iter = attribute_list, **ast_iter = &ast->attribute_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- return ast;
- }
- ObjCMethodDeclarationAST *ObjCMethodDeclarationAST::clone(MemoryPool *pool) const
- {
- ObjCMethodDeclarationAST *ast = new (pool) ObjCMethodDeclarationAST;
- if (method_prototype)
- ast->method_prototype = method_prototype->clone(pool);
- if (function_body)
- ast->function_body = function_body->clone(pool);
- ast->semicolon_token = semicolon_token;
- return ast;
- }
- ObjCSynthesizedPropertyAST *ObjCSynthesizedPropertyAST::clone(MemoryPool *pool) const
- {
- ObjCSynthesizedPropertyAST *ast = new (pool) ObjCSynthesizedPropertyAST;
- ast->property_identifier_token = property_identifier_token;
- ast->equals_token = equals_token;
- ast->alias_identifier_token = alias_identifier_token;
- return ast;
- }
- ObjCSynthesizedPropertiesDeclarationAST *ObjCSynthesizedPropertiesDeclarationAST::clone(MemoryPool *pool) const
- {
- ObjCSynthesizedPropertiesDeclarationAST *ast = new (pool) ObjCSynthesizedPropertiesDeclarationAST;
- ast->synthesized_token = synthesized_token;
- for (ObjCSynthesizedPropertyListAST *iter = property_identifier_list, **ast_iter = &ast->property_identifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) ObjCSynthesizedPropertyListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->semicolon_token = semicolon_token;
- return ast;
- }
- ObjCDynamicPropertiesDeclarationAST *ObjCDynamicPropertiesDeclarationAST::clone(MemoryPool *pool) const
- {
- ObjCDynamicPropertiesDeclarationAST *ast = new (pool) ObjCDynamicPropertiesDeclarationAST;
- ast->dynamic_token = dynamic_token;
- for (NameListAST *iter = property_identifier_list, **ast_iter = &ast->property_identifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) NameListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->semicolon_token = semicolon_token;
- return ast;
- }
- ObjCFastEnumerationAST *ObjCFastEnumerationAST::clone(MemoryPool *pool) const
- {
- ObjCFastEnumerationAST *ast = new (pool) ObjCFastEnumerationAST;
- ast->for_token = for_token;
- ast->lparen_token = lparen_token;
- for (SpecifierListAST *iter = type_specifier_list, **ast_iter = &ast->type_specifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- if (declarator)
- ast->declarator = declarator->clone(pool);
- if (initializer)
- ast->initializer = initializer->clone(pool);
- ast->in_token = in_token;
- if (fast_enumeratable_expression)
- ast->fast_enumeratable_expression = fast_enumeratable_expression->clone(pool);
- ast->rparen_token = rparen_token;
- if (statement)
- ast->statement = statement->clone(pool);
- return ast;
- }
- ObjCSynchronizedStatementAST *ObjCSynchronizedStatementAST::clone(MemoryPool *pool) const
- {
- ObjCSynchronizedStatementAST *ast = new (pool) ObjCSynchronizedStatementAST;
- ast->synchronized_token = synchronized_token;
- ast->lparen_token = lparen_token;
- if (synchronized_object)
- ast->synchronized_object = synchronized_object->clone(pool);
- ast->rparen_token = rparen_token;
- if (statement)
- ast->statement = statement->clone(pool);
- return ast;
- }
- LambdaExpressionAST *LambdaExpressionAST::clone(MemoryPool *pool) const
- {
- LambdaExpressionAST *ast = new (pool) LambdaExpressionAST;
- if (lambda_introducer)
- ast->lambda_introducer = lambda_introducer->clone(pool);
- if (lambda_declarator)
- ast->lambda_declarator = lambda_declarator->clone(pool);
- if (statement)
- ast->statement = statement->clone(pool);
- return ast;
- }
- LambdaIntroducerAST *LambdaIntroducerAST::clone(MemoryPool *pool) const
- {
- LambdaIntroducerAST *ast = new (pool) LambdaIntroducerAST;
- ast->lbracket_token = lbracket_token;
- if (lambda_capture)
- ast->lambda_capture = lambda_capture->clone(pool);
- ast->rbracket_token = rbracket_token;
- return ast;
- }
- LambdaCaptureAST *LambdaCaptureAST::clone(MemoryPool *pool) const
- {
- LambdaCaptureAST *ast = new (pool) LambdaCaptureAST;
- ast->default_capture_token = default_capture_token;
- for (CaptureListAST *iter = capture_list, **ast_iter = &ast->capture_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) CaptureListAST((iter->value) ? iter->value->clone(pool) : 0);
- return ast;
- }
- CaptureAST *CaptureAST::clone(MemoryPool *pool) const
- {
- CaptureAST *ast = new (pool) CaptureAST;
- ast->amper_token = amper_token;
- if (identifier)
- ast->identifier = identifier->clone(pool);
- return ast;
- }
- LambdaDeclaratorAST *LambdaDeclaratorAST::clone(MemoryPool *pool) const
- {
- LambdaDeclaratorAST *ast = new (pool) LambdaDeclaratorAST;
- ast->lparen_token = lparen_token;
- if (parameter_declaration_clause)
- ast->parameter_declaration_clause = parameter_declaration_clause->clone(pool);
- ast->rparen_token = rparen_token;
- for (SpecifierListAST *iter = attributes, **ast_iter = &ast->attributes;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->mutable_token = mutable_token;
- if (exception_specification)
- ast->exception_specification = exception_specification->clone(pool);
- if (trailing_return_type)
- ast->trailing_return_type = trailing_return_type->clone(pool);
- return ast;
- }
- TrailingReturnTypeAST *TrailingReturnTypeAST::clone(MemoryPool *pool) const
- {
- TrailingReturnTypeAST *ast = new (pool) TrailingReturnTypeAST;
- ast->arrow_token = arrow_token;
- for (SpecifierListAST *iter = attributes, **ast_iter = &ast->attributes;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- for (SpecifierListAST *iter = type_specifier_list, **ast_iter = &ast->type_specifier_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
- if (declarator)
- ast->declarator = declarator->clone(pool);
- return ast;
- }
- BracedInitializerAST *BracedInitializerAST::clone(MemoryPool *pool) const
- {
- BracedInitializerAST *ast = new (pool) BracedInitializerAST;
- ast->lbrace_token = lbrace_token;
- for (ExpressionListAST *iter = expression_list, **ast_iter = &ast->expression_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) ExpressionListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->comma_token = comma_token;
- ast->rbrace_token = rbrace_token;
- return ast;
- }
- DotDesignatorAST *DotDesignatorAST::clone(MemoryPool *pool) const
- {
- DotDesignatorAST *ast = new (pool) DotDesignatorAST;
- ast->dot_token = dot_token;
- ast->identifier_token = identifier_token;
- return ast;
- }
- BracketDesignatorAST *BracketDesignatorAST::clone(MemoryPool *pool) const
- {
- BracketDesignatorAST *ast = new (pool) BracketDesignatorAST;
- ast->lbracket_token = lbracket_token;
- if (expression)
- ast->expression = expression->clone(pool);
- ast->rbracket_token = rbracket_token;
- return ast;
- }
- DesignatedInitializerAST *DesignatedInitializerAST::clone(MemoryPool *pool) const
- {
- DesignatedInitializerAST *ast = new (pool) DesignatedInitializerAST;
- for (DesignatorListAST *iter = designator_list, **ast_iter = &ast->designator_list;
- iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
- *ast_iter = new (pool) DesignatorListAST((iter->value) ? iter->value->clone(pool) : 0);
- ast->equal_token = equal_token;
- if (initializer)
- ast->initializer = initializer->clone(pool);
- return ast;
- }
|