summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/shared/cplusplus/ASTPatternBuilder.h535
-rw-r--r--src/tools/gen-cpp-ast/generate-ast.cpp24
2 files changed, 495 insertions, 64 deletions
diff --git a/src/shared/cplusplus/ASTPatternBuilder.h b/src/shared/cplusplus/ASTPatternBuilder.h
index bfc1e6d269..32c57bf144 100644
--- a/src/shared/cplusplus/ASTPatternBuilder.h
+++ b/src/shared/cplusplus/ASTPatternBuilder.h
@@ -30,6 +30,15 @@
** Nokia at qt-info@nokia.com.
**
**************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is automatically generated.
+// Changes will be lost.
+//
+
#ifndef CPLUSPLUS_AST_PATTERN_BUILDER_H
#define CPLUSPLUS_AST_PATTERN_BUILDER_H
@@ -45,25 +54,39 @@ class CPLUSPLUS_EXPORT ASTPatternBuilder
public:
ASTPatternBuilder() {}
- ~ASTPatternBuilder() {}
void reset() { pool.reset(); }
+ ObjCSelectorArgumentAST *ObjCSelectorArgument()
+ {
+ ObjCSelectorArgumentAST *__ast = new (&pool) ObjCSelectorArgumentAST;
+ return __ast;
+ }
+
+ ObjCSelectorAST *ObjCSelector(ObjCSelectorArgumentListAST *selector_argument_list = 0)
+ {
+ ObjCSelectorAST *__ast = new (&pool) ObjCSelectorAST;
+ __ast->selector_argument_list = selector_argument_list;
+ return __ast;
+ }
+
SimpleSpecifierAST *SimpleSpecifier()
{
SimpleSpecifierAST *__ast = new (&pool) SimpleSpecifierAST;
return __ast;
}
- AttributeSpecifierAST *AttributeSpecifier()
+ AttributeSpecifierAST *AttributeSpecifier(AttributeListAST *attribute_list = 0)
{
AttributeSpecifierAST *__ast = new (&pool) AttributeSpecifierAST;
+ __ast->attribute_list = attribute_list;
return __ast;
}
- AttributeAST *Attribute()
+ AttributeAST *Attribute(ExpressionListAST *expression_list = 0)
{
AttributeAST *__ast = new (&pool) AttributeAST;
+ __ast->expression_list = expression_list;
return __ast;
}
@@ -74,17 +97,23 @@ public:
return __ast;
}
- DeclaratorAST *Declarator(CoreDeclaratorAST *core_declarator = 0, ExpressionAST *initializer = 0)
+ DeclaratorAST *Declarator(SpecifierListAST *attribute_list = 0, PtrOperatorListAST *ptr_operator_list = 0, CoreDeclaratorAST *core_declarator = 0, PostfixDeclaratorListAST *postfix_declarator_list = 0, SpecifierListAST *post_attribute_list = 0, ExpressionAST *initializer = 0)
{
DeclaratorAST *__ast = new (&pool) DeclaratorAST;
+ __ast->attribute_list = attribute_list;
+ __ast->ptr_operator_list = ptr_operator_list;
__ast->core_declarator = core_declarator;
+ __ast->postfix_declarator_list = postfix_declarator_list;
+ __ast->post_attribute_list = post_attribute_list;
__ast->initializer = initializer;
return __ast;
}
- SimpleDeclarationAST *SimpleDeclaration()
+ SimpleDeclarationAST *SimpleDeclaration(SpecifierListAST *decl_specifier_list = 0, DeclaratorListAST *declarator_list = 0)
{
SimpleDeclarationAST *__ast = new (&pool) SimpleDeclarationAST;
+ __ast->decl_specifier_list = decl_specifier_list;
+ __ast->declarator_list = declarator_list;
return __ast;
}
@@ -100,6 +129,66 @@ public:
return __ast;
}
+ QtObjectTagAST *QtObjectTag()
+ {
+ QtObjectTagAST *__ast = new (&pool) QtObjectTagAST;
+ return __ast;
+ }
+
+ QtPrivateSlotAST *QtPrivateSlot(SpecifierListAST *type_specifier_list = 0, DeclaratorAST *declarator = 0)
+ {
+ QtPrivateSlotAST *__ast = new (&pool) QtPrivateSlotAST;
+ __ast->type_specifier_list = type_specifier_list;
+ __ast->declarator = declarator;
+ return __ast;
+ }
+
+ QtPropertyDeclarationItemAST *QtPropertyDeclarationItem(ExpressionAST *expression = 0)
+ {
+ QtPropertyDeclarationItemAST *__ast = new (&pool) QtPropertyDeclarationItemAST;
+ __ast->expression = expression;
+ return __ast;
+ }
+
+ QtPropertyDeclarationAST *QtPropertyDeclaration(ExpressionAST *expression = 0, ExpressionAST *type_id = 0, NameAST *property_name = 0, QtPropertyDeclarationItemListAST *property_declaration_item_list = 0)
+ {
+ QtPropertyDeclarationAST *__ast = new (&pool) QtPropertyDeclarationAST;
+ __ast->expression = expression;
+ __ast->type_id = type_id;
+ __ast->property_name = property_name;
+ __ast->property_declaration_item_list = property_declaration_item_list;
+ return __ast;
+ }
+
+ QtEnumDeclarationAST *QtEnumDeclaration(NameListAST *enumerator_list = 0)
+ {
+ QtEnumDeclarationAST *__ast = new (&pool) QtEnumDeclarationAST;
+ __ast->enumerator_list = enumerator_list;
+ return __ast;
+ }
+
+ QtFlagsDeclarationAST *QtFlagsDeclaration(NameListAST *flag_enums_list = 0)
+ {
+ QtFlagsDeclarationAST *__ast = new (&pool) QtFlagsDeclarationAST;
+ __ast->flag_enums_list = flag_enums_list;
+ return __ast;
+ }
+
+ QtInterfaceNameAST *QtInterfaceName(NameAST *interface_name = 0, NameListAST *constraint_list = 0)
+ {
+ QtInterfaceNameAST *__ast = new (&pool) QtInterfaceNameAST;
+ __ast->interface_name = interface_name;
+ __ast->constraint_list = constraint_list;
+ return __ast;
+ }
+
+ QtInterfacesDeclarationAST *QtInterfacesDeclaration(QtInterfaceNameListAST *interface_name_list = 0)
+ {
+ QtInterfacesDeclarationAST *__ast = new (&pool) QtInterfacesDeclarationAST;
+ __ast->interface_name_list = interface_name_list;
+ return __ast;
+ }
+
AsmDefinitionAST *AsmDefinition()
{
AsmDefinitionAST *__ast = new (&pool) AsmDefinitionAST;
@@ -113,6 +202,20 @@ public:
return __ast;
}
+ IdExpressionAST *IdExpression(NameAST *name = 0)
+ {
+ IdExpressionAST *__ast = new (&pool) IdExpressionAST;
+ __ast->name = name;
+ return __ast;
+ }
+
+ CompoundExpressionAST *CompoundExpression(CompoundStatementAST *statement = 0)
+ {
+ CompoundExpressionAST *__ast = new (&pool) CompoundExpressionAST;
+ __ast->statement = statement;
+ return __ast;
+ }
+
CompoundLiteralAST *CompoundLiteral(ExpressionAST *type_id = 0, ExpressionAST *initializer = 0)
{
CompoundLiteralAST *__ast = new (&pool) CompoundLiteralAST;
@@ -128,6 +231,13 @@ public:
return __ast;
}
+ QtMemberDeclarationAST *QtMemberDeclaration(ExpressionAST *type_id = 0)
+ {
+ QtMemberDeclarationAST *__ast = new (&pool) QtMemberDeclarationAST;
+ __ast->type_id = type_id;
+ return __ast;
+ }
+
BinaryExpressionAST *BinaryExpression(ExpressionAST *left_expression = 0, ExpressionAST *right_expression = 0)
{
BinaryExpressionAST *__ast = new (&pool) BinaryExpressionAST;
@@ -144,10 +254,13 @@ public:
return __ast;
}
- ClassSpecifierAST *ClassSpecifier(NameAST *name = 0)
+ ClassSpecifierAST *ClassSpecifier(SpecifierListAST *attribute_list = 0, NameAST *name = 0, BaseSpecifierListAST *base_clause_list = 0, DeclarationListAST *member_specifier_list = 0)
{
ClassSpecifierAST *__ast = new (&pool) ClassSpecifierAST;
+ __ast->attribute_list = attribute_list;
__ast->name = name;
+ __ast->base_clause_list = base_clause_list;
+ __ast->member_specifier_list = member_specifier_list;
return __ast;
}
@@ -159,15 +272,17 @@ public:
return __ast;
}
- CompoundStatementAST *CompoundStatement()
+ CompoundStatementAST *CompoundStatement(StatementListAST *statement_list = 0)
{
CompoundStatementAST *__ast = new (&pool) CompoundStatementAST;
+ __ast->statement_list = statement_list;
return __ast;
}
- ConditionAST *Condition(DeclaratorAST *declarator = 0)
+ ConditionAST *Condition(SpecifierListAST *type_specifier_list = 0, DeclaratorAST *declarator = 0)
{
ConditionAST *__ast = new (&pool) ConditionAST;
+ __ast->type_specifier_list = type_specifier_list;
__ast->declarator = declarator;
return __ast;
}
@@ -189,9 +304,10 @@ public:
return __ast;
}
- CtorInitializerAST *CtorInitializer()
+ CtorInitializerAST *CtorInitializer(MemInitializerListAST *member_initializer_list = 0)
{
CtorInitializerAST *__ast = new (&pool) CtorInitializerAST;
+ __ast->member_initializer_list = member_initializer_list;
return __ast;
}
@@ -216,11 +332,13 @@ public:
return __ast;
}
- FunctionDeclaratorAST *FunctionDeclarator(ParameterDeclarationClauseAST *parameters = 0, ExceptionSpecificationAST *exception_specification = 0, ExpressionAST *as_cpp_initializer = 0)
+ FunctionDeclaratorAST *FunctionDeclarator(ParameterDeclarationClauseAST *parameter_declaration_clause = 0, SpecifierListAST *cv_qualifier_list = 0, ExceptionSpecificationAST *exception_specification = 0, TrailingReturnTypeAST *trailing_return_type = 0, ExpressionAST *as_cpp_initializer = 0)
{
FunctionDeclaratorAST *__ast = new (&pool) FunctionDeclaratorAST;
- __ast->parameter_declaration_clause = parameters;
+ __ast->parameter_declaration_clause = parameter_declaration_clause;
+ __ast->cv_qualifier_list = cv_qualifier_list;
__ast->exception_specification = exception_specification;
+ __ast->trailing_return_type = trailing_return_type;
__ast->as_cpp_initializer = as_cpp_initializer;
return __ast;
}
@@ -254,17 +372,19 @@ public:
return __ast;
}
- ElaboratedTypeSpecifierAST *ElaboratedTypeSpecifier(NameAST *name = 0)
+ ElaboratedTypeSpecifierAST *ElaboratedTypeSpecifier(SpecifierListAST *attribute_list = 0, NameAST *name = 0)
{
ElaboratedTypeSpecifierAST *__ast = new (&pool) ElaboratedTypeSpecifierAST;
+ __ast->attribute_list = attribute_list;
__ast->name = name;
return __ast;
}
- EnumSpecifierAST *EnumSpecifier(NameAST *name = 0)
+ EnumSpecifierAST *EnumSpecifier(NameAST *name = 0, EnumeratorListAST *enumerator_list = 0)
{
EnumSpecifierAST *__ast = new (&pool) EnumSpecifierAST;
__ast->name = name;
+ __ast->enumerator_list = enumerator_list;
return __ast;
}
@@ -275,16 +395,18 @@ public:
return __ast;
}
- ExceptionDeclarationAST *ExceptionDeclaration(DeclaratorAST *declarator = 0)
+ ExceptionDeclarationAST *ExceptionDeclaration(SpecifierListAST *type_specifier_list = 0, DeclaratorAST *declarator = 0)
{
ExceptionDeclarationAST *__ast = new (&pool) ExceptionDeclarationAST;
+ __ast->type_specifier_list = type_specifier_list;
__ast->declarator = declarator;
return __ast;
}
- ExceptionSpecificationAST *ExceptionSpecification()
+ ExceptionSpecificationAST *ExceptionSpecification(ExpressionListAST *type_id_list = 0)
{
ExceptionSpecificationAST *__ast = new (&pool) ExceptionSpecificationAST;
+ __ast->type_id_list = type_id_list;
return __ast;
}
@@ -303,18 +425,20 @@ public:
return __ast;
}
- FunctionDefinitionAST *FunctionDefinition(DeclaratorAST *declarator = 0, CtorInitializerAST *ctor_initializer = 0, StatementAST *function_body = 0)
+ FunctionDefinitionAST *FunctionDefinition(SpecifierListAST *decl_specifier_list = 0, DeclaratorAST *declarator = 0, CtorInitializerAST *ctor_initializer = 0, StatementAST *function_body = 0)
{
FunctionDefinitionAST *__ast = new (&pool) FunctionDefinitionAST;
+ __ast->decl_specifier_list = decl_specifier_list;
__ast->declarator = declarator;
__ast->ctor_initializer = ctor_initializer;
__ast->function_body = function_body;
return __ast;
}
- ForeachStatementAST *ForeachStatement(DeclaratorAST *declarator = 0, ExpressionAST *initializer = 0, ExpressionAST *expression = 0, StatementAST *statement = 0)
+ ForeachStatementAST *ForeachStatement(SpecifierListAST *type_specifier_list = 0, DeclaratorAST *declarator = 0, ExpressionAST *initializer = 0, ExpressionAST *expression = 0, StatementAST *statement = 0)
{
ForeachStatementAST *__ast = new (&pool) ForeachStatementAST;
+ __ast->type_specifier_list = type_specifier_list;
__ast->declarator = declarator;
__ast->initializer = initializer;
__ast->expression = expression;
@@ -341,9 +465,10 @@ public:
return __ast;
}
- ArrayInitializerAST *ArrayInitializer()
+ ArrayInitializerAST *ArrayInitializer(ExpressionListAST *expression_list = 0)
{
ArrayInitializerAST *__ast = new (&pool) ArrayInitializerAST;
+ __ast->expression_list = expression_list;
return __ast;
}
@@ -354,9 +479,10 @@ public:
return __ast;
}
- LinkageBodyAST *LinkageBody()
+ LinkageBodyAST *LinkageBody(DeclarationListAST *declaration_list = 0)
{
LinkageBodyAST *__ast = new (&pool) LinkageBodyAST;
+ __ast->declaration_list = declaration_list;
return __ast;
}
@@ -367,10 +493,11 @@ public:
return __ast;
}
- MemInitializerAST *MemInitializer(NameAST *name = 0)
+ MemInitializerAST *MemInitializer(NameAST *name = 0, ExpressionListAST *expression_list = 0)
{
MemInitializerAST *__ast = new (&pool) MemInitializerAST;
__ast->name = name;
+ __ast->expression_list = expression_list;
return __ast;
}
@@ -381,9 +508,10 @@ public:
return __ast;
}
- QualifiedNameAST *QualifiedName(NameAST *unqualified_name = 0)
+ QualifiedNameAST *QualifiedName(NestedNameSpecifierListAST *nested_name_specifier_list = 0, NameAST *unqualified_name = 0)
{
QualifiedNameAST *__ast = new (&pool) QualifiedNameAST;
+ __ast->nested_name_specifier_list = nested_name_specifier_list;
__ast->unqualified_name = unqualified_name;
return __ast;
}
@@ -395,9 +523,11 @@ public:
return __ast;
}
- ConversionFunctionIdAST *ConversionFunctionId()
+ ConversionFunctionIdAST *ConversionFunctionId(SpecifierListAST *type_specifier_list = 0, PtrOperatorListAST *ptr_operator_list = 0)
{
ConversionFunctionIdAST *__ast = new (&pool) ConversionFunctionIdAST;
+ __ast->type_specifier_list = type_specifier_list;
+ __ast->ptr_operator_list = ptr_operator_list;
return __ast;
}
@@ -413,15 +543,17 @@ public:
return __ast;
}
- TemplateIdAST *TemplateId()
+ TemplateIdAST *TemplateId(ExpressionListAST *template_argument_list = 0)
{
TemplateIdAST *__ast = new (&pool) TemplateIdAST;
+ __ast->template_argument_list = template_argument_list;
return __ast;
}
- NamespaceAST *Namespace(DeclarationAST *linkage_body = 0)
+ NamespaceAST *Namespace(SpecifierListAST *attribute_list = 0, DeclarationAST *linkage_body = 0)
{
NamespaceAST *__ast = new (&pool) NamespaceAST;
+ __ast->attribute_list = attribute_list;
__ast->linkage_body = linkage_body;
return __ast;
}
@@ -433,9 +565,10 @@ public:
return __ast;
}
- NewPlacementAST *NewPlacement()
+ NewPlacementAST *NewPlacement(ExpressionListAST *expression_list = 0)
{
NewPlacementAST *__ast = new (&pool) NewPlacementAST;
+ __ast->expression_list = expression_list;
return __ast;
}
@@ -463,9 +596,12 @@ public:
return __ast;
}
- NewTypeIdAST *NewTypeId()
+ NewTypeIdAST *NewTypeId(SpecifierListAST *type_specifier_list = 0, PtrOperatorListAST *ptr_operator_list = 0, NewArrayDeclaratorListAST *new_array_declarator_list = 0)
{
NewTypeIdAST *__ast = new (&pool) NewTypeIdAST;
+ __ast->type_specifier_list = type_specifier_list;
+ __ast->ptr_operator_list = ptr_operator_list;
+ __ast->new_array_declarator_list = new_array_declarator_list;
return __ast;
}
@@ -475,42 +611,49 @@ public:
return __ast;
}
- ParameterDeclarationAST *ParameterDeclaration(DeclaratorAST *declarator = 0, ExpressionAST *expression = 0)
+ ParameterDeclarationAST *ParameterDeclaration(SpecifierListAST *type_specifier_list = 0, DeclaratorAST *declarator = 0, ExpressionAST *expression = 0)
{
ParameterDeclarationAST *__ast = new (&pool) ParameterDeclarationAST;
+ __ast->type_specifier_list = type_specifier_list;
__ast->declarator = declarator;
__ast->expression = expression;
return __ast;
}
- ParameterDeclarationClauseAST *ParameterDeclarationClause()
+ ParameterDeclarationClauseAST *ParameterDeclarationClause(ParameterDeclarationListAST *parameter_declaration_list = 0)
{
ParameterDeclarationClauseAST *__ast = new (&pool) ParameterDeclarationClauseAST;
+ __ast->parameter_declaration_list = parameter_declaration_list;
return __ast;
}
- CallAST *Call()
+ CallAST *Call(ExpressionAST *base_expression = 0, ExpressionListAST *expression_list = 0)
{
CallAST *__ast = new (&pool) CallAST;
+ __ast->base_expression = base_expression;
+ __ast->expression_list = expression_list;
return __ast;
}
- ArrayAccessAST *ArrayAccess(ExpressionAST *expression = 0)
+ ArrayAccessAST *ArrayAccess(ExpressionAST *base_expression = 0, ExpressionAST *expression = 0)
{
ArrayAccessAST *__ast = new (&pool) ArrayAccessAST;
+ __ast->base_expression = base_expression;
__ast->expression = expression;
return __ast;
}
- PostIncrDecrAST *PostIncrDecr()
+ PostIncrDecrAST *PostIncrDecr(ExpressionAST *base_expression = 0)
{
PostIncrDecrAST *__ast = new (&pool) PostIncrDecrAST;
+ __ast->base_expression = base_expression;
return __ast;
}
- MemberAccessAST *MemberAccess(NameAST *member_name = 0)
+ MemberAccessAST *MemberAccess(ExpressionAST *base_expression = 0, NameAST *member_name = 0)
{
MemberAccessAST *__ast = new (&pool) MemberAccessAST;
+ __ast->base_expression = base_expression;
__ast->member_name = member_name;
return __ast;
}
@@ -522,28 +665,34 @@ public:
return __ast;
}
- TypenameCallExpressionAST *TypenameCallExpression(NameAST *name = 0)
+ TypenameCallExpressionAST *TypenameCallExpression(NameAST *name = 0, ExpressionListAST *expression_list = 0)
{
TypenameCallExpressionAST *__ast = new (&pool) TypenameCallExpressionAST;
__ast->name = name;
+ __ast->expression_list = expression_list;
return __ast;
}
- TypeConstructorCallAST *TypeConstructorCall()
+ TypeConstructorCallAST *TypeConstructorCall(SpecifierListAST *type_specifier_list = 0, ExpressionListAST *expression_list = 0)
{
TypeConstructorCallAST *__ast = new (&pool) TypeConstructorCallAST;
+ __ast->type_specifier_list = type_specifier_list;
+ __ast->expression_list = expression_list;
return __ast;
}
- PointerToMemberAST *PointerToMember()
+ PointerToMemberAST *PointerToMember(NestedNameSpecifierListAST *nested_name_specifier_list = 0, SpecifierListAST *cv_qualifier_list = 0)
{
PointerToMemberAST *__ast = new (&pool) PointerToMemberAST;
+ __ast->nested_name_specifier_list = nested_name_specifier_list;
+ __ast->cv_qualifier_list = cv_qualifier_list;
return __ast;
}
- PointerAST *Pointer()
+ PointerAST *Pointer(SpecifierListAST *cv_qualifier_list = 0)
{
PointerAST *__ast = new (&pool) PointerAST;
+ __ast->cv_qualifier_list = cv_qualifier_list;
return __ast;
}
@@ -625,9 +774,10 @@ public:
return __ast;
}
- TemplateDeclarationAST *TemplateDeclaration(DeclarationAST *declaration = 0)
+ TemplateDeclarationAST *TemplateDeclaration(DeclarationListAST *template_parameter_list = 0, DeclarationAST *declaration = 0)
{
TemplateDeclarationAST *__ast = new (&pool) TemplateDeclarationAST;
+ __ast->template_parameter_list = template_parameter_list;
__ast->declaration = declaration;
return __ast;
}
@@ -639,16 +789,18 @@ public:
return __ast;
}
- TranslationUnitAST *TranslationUnit()
+ TranslationUnitAST *TranslationUnit(DeclarationListAST *declaration_list = 0)
{
TranslationUnitAST *__ast = new (&pool) TranslationUnitAST;
+ __ast->declaration_list = declaration_list;
return __ast;
}
- TryBlockStatementAST *TryBlockStatement(StatementAST *statement = 0)
+ TryBlockStatementAST *TryBlockStatement(StatementAST *statement = 0, CatchClauseListAST *catch_clause_list = 0)
{
TryBlockStatementAST *__ast = new (&pool) TryBlockStatementAST;
__ast->statement = statement;
+ __ast->catch_clause_list = catch_clause_list;
return __ast;
}
@@ -660,9 +812,10 @@ public:
return __ast;
}
- TypeIdAST *TypeId(DeclaratorAST *declarator = 0)
+ TypeIdAST *TypeId(SpecifierListAST *type_specifier_list = 0, DeclaratorAST *declarator = 0)
{
TypeIdAST *__ast = new (&pool) TypeIdAST;
+ __ast->type_specifier_list = type_specifier_list;
__ast->declarator = declarator;
return __ast;
}
@@ -675,9 +828,10 @@ public:
return __ast;
}
- TemplateTypeParameterAST *TemplateTypeParameter(NameAST *name = 0, ExpressionAST *type_id = 0)
+ TemplateTypeParameterAST *TemplateTypeParameter(DeclarationListAST *template_parameter_list = 0, NameAST *name = 0, ExpressionAST *type_id = 0)
{
TemplateTypeParameterAST *__ast = new (&pool) TemplateTypeParameterAST;
+ __ast->template_parameter_list = template_parameter_list;
__ast->name = name;
__ast->type_id = type_id;
return __ast;
@@ -712,40 +866,49 @@ public:
return __ast;
}
- ObjCClassForwardDeclarationAST *ObjCClassForwardDeclaration()
+ ObjCClassForwardDeclarationAST *ObjCClassForwardDeclaration(SpecifierListAST *attribute_list = 0, NameListAST *identifier_list = 0)
{
ObjCClassForwardDeclarationAST *__ast = new (&pool) ObjCClassForwardDeclarationAST;
+ __ast->attribute_list = attribute_list;
+ __ast->identifier_list = identifier_list;
return __ast;
}
- ObjCClassDeclarationAST *ObjCClassDeclaration(NameAST *class_name = 0, NameAST *category_name = 0, NameAST *superclass = 0, ObjCProtocolRefsAST *protocol_refs = 0, ObjCInstanceVariablesDeclarationAST *inst_vars_decl = 0)
+ ObjCClassDeclarationAST *ObjCClassDeclaration(SpecifierListAST *attribute_list = 0, NameAST *class_name = 0, NameAST *category_name = 0, NameAST *superclass = 0, ObjCProtocolRefsAST *protocol_refs = 0, ObjCInstanceVariablesDeclarationAST *inst_vars_decl = 0, DeclarationListAST *member_declaration_list = 0)
{
ObjCClassDeclarationAST *__ast = new (&pool) ObjCClassDeclarationAST;
+ __ast->attribute_list = attribute_list;
__ast->class_name = class_name;
__ast->category_name = category_name;
__ast->superclass = superclass;
__ast->protocol_refs = protocol_refs;
__ast->inst_vars_decl = inst_vars_decl;
+ __ast->member_declaration_list = member_declaration_list;
return __ast;
}
- ObjCProtocolForwardDeclarationAST *ObjCProtocolForwardDeclaration()
+ ObjCProtocolForwardDeclarationAST *ObjCProtocolForwardDeclaration(SpecifierListAST *attribute_list = 0, NameListAST *identifier_list = 0)
{
ObjCProtocolForwardDeclarationAST *__ast = new (&pool) ObjCProtocolForwardDeclarationAST;
+ __ast->attribute_list = attribute_list;
+ __ast->identifier_list = identifier_list;
return __ast;
}
- ObjCProtocolDeclarationAST *ObjCProtocolDeclaration(NameAST *name = 0, ObjCProtocolRefsAST *protocol_refs = 0)
+ ObjCProtocolDeclarationAST *ObjCProtocolDeclaration(SpecifierListAST *attribute_list = 0, NameAST *name = 0, ObjCProtocolRefsAST *protocol_refs = 0, DeclarationListAST *member_declaration_list = 0)
{
ObjCProtocolDeclarationAST *__ast = new (&pool) ObjCProtocolDeclarationAST;
+ __ast->attribute_list = attribute_list;
__ast->name = name;
__ast->protocol_refs = protocol_refs;
+ __ast->member_declaration_list = member_declaration_list;
return __ast;
}
- ObjCProtocolRefsAST *ObjCProtocolRefs()
+ ObjCProtocolRefsAST *ObjCProtocolRefs(NameListAST *identifier_list = 0)
{
ObjCProtocolRefsAST *__ast = new (&pool) ObjCProtocolRefsAST;
+ __ast->identifier_list = identifier_list;
return __ast;
}
@@ -756,11 +919,12 @@ public:
return __ast;
}
- ObjCMessageExpressionAST *ObjCMessageExpression(ExpressionAST *receiver_expression = 0, ObjCSelectorAST *selector = 0)
+ ObjCMessageExpressionAST *ObjCMessageExpression(ExpressionAST *receiver_expression = 0, ObjCSelectorAST *selector = 0, ObjCMessageArgumentListAST *argument_list = 0)
{
ObjCMessageExpressionAST *__ast = new (&pool) ObjCMessageExpressionAST;
__ast->receiver_expression = receiver_expression;
__ast->selector = selector;
+ __ast->argument_list = argument_list;
return __ast;
}
@@ -784,12 +948,6 @@ public:
return __ast;
}
- ObjCSelectorArgumentAST *ObjCSelectorArgument()
- {
- ObjCSelectorArgumentAST *__ast = new (&pool) ObjCSelectorArgumentAST;
- return __ast;
- }
-
ObjCSelectorExpressionAST *ObjCSelectorExpression(ObjCSelectorAST *selector = 0)
{
ObjCSelectorExpressionAST *__ast = new (&pool) ObjCSelectorExpressionAST;
@@ -797,9 +955,10 @@ public:
return __ast;
}
- ObjCInstanceVariablesDeclarationAST *ObjCInstanceVariablesDeclaration()
+ ObjCInstanceVariablesDeclarationAST *ObjCInstanceVariablesDeclaration(DeclarationListAST *instance_variable_list = 0)
{
ObjCInstanceVariablesDeclarationAST *__ast = new (&pool) ObjCInstanceVariablesDeclarationAST;
+ __ast->instance_variable_list = instance_variable_list;
return __ast;
}
@@ -816,25 +975,31 @@ public:
return __ast;
}
- ObjCPropertyDeclarationAST *ObjCPropertyDeclaration(DeclarationAST *simple_declaration = 0)
+ ObjCPropertyDeclarationAST *ObjCPropertyDeclaration(SpecifierListAST *attribute_list = 0, ObjCPropertyAttributeListAST *property_attribute_list = 0, DeclarationAST *simple_declaration = 0)
{
ObjCPropertyDeclarationAST *__ast = new (&pool) ObjCPropertyDeclarationAST;
+ __ast->attribute_list = attribute_list;
+ __ast->property_attribute_list = property_attribute_list;
__ast->simple_declaration = simple_declaration;
return __ast;
}
- ObjCMessageArgumentDeclarationAST *ObjCMessageArgumentDeclaration(ObjCTypeNameAST *type_name = 0)
+ ObjCMessageArgumentDeclarationAST *ObjCMessageArgumentDeclaration(ObjCTypeNameAST *type_name = 0, SpecifierListAST *attribute_list = 0, NameAST *param_name = 0)
{
ObjCMessageArgumentDeclarationAST *__ast = new (&pool) ObjCMessageArgumentDeclarationAST;
__ast->type_name = type_name;
+ __ast->attribute_list = attribute_list;
+ __ast->param_name = param_name;
return __ast;
}
- ObjCMethodPrototypeAST *ObjCMethodPrototype(ObjCTypeNameAST *type_name = 0, ObjCSelectorAST *selector = 0)
+ ObjCMethodPrototypeAST *ObjCMethodPrototype(ObjCTypeNameAST *type_name = 0, ObjCSelectorAST *selector = 0, ObjCMessageArgumentDeclarationListAST *argument_list = 0, SpecifierListAST *attribute_list = 0)
{
ObjCMethodPrototypeAST *__ast = new (&pool) ObjCMethodPrototypeAST;
__ast->type_name = type_name;
__ast->selector = selector;
+ __ast->argument_list = argument_list;
+ __ast->attribute_list = attribute_list;
return __ast;
}
@@ -852,21 +1017,24 @@ public:
return __ast;
}
- ObjCSynthesizedPropertiesDeclarationAST *ObjCSynthesizedPropertiesDeclaration()
+ ObjCSynthesizedPropertiesDeclarationAST *ObjCSynthesizedPropertiesDeclaration(ObjCSynthesizedPropertyListAST *property_identifier_list = 0)
{
ObjCSynthesizedPropertiesDeclarationAST *__ast = new (&pool) ObjCSynthesizedPropertiesDeclarationAST;
+ __ast->property_identifier_list = property_identifier_list;
return __ast;
}
- ObjCDynamicPropertiesDeclarationAST *ObjCDynamicPropertiesDeclaration()
+ ObjCDynamicPropertiesDeclarationAST *ObjCDynamicPropertiesDeclaration(NameListAST *property_identifier_list = 0)
{
ObjCDynamicPropertiesDeclarationAST *__ast = new (&pool) ObjCDynamicPropertiesDeclarationAST;
+ __ast->property_identifier_list = property_identifier_list;
return __ast;
}
- ObjCFastEnumerationAST *ObjCFastEnumeration(DeclaratorAST *declarator = 0, ExpressionAST *initializer = 0, ExpressionAST *fast_enumeratable_expression = 0, StatementAST *statement = 0)
+ ObjCFastEnumerationAST *ObjCFastEnumeration(SpecifierListAST *type_specifier_list = 0, DeclaratorAST *declarator = 0, ExpressionAST *initializer = 0, ExpressionAST *fast_enumeratable_expression = 0, StatementAST *statement = 0)
{
ObjCFastEnumerationAST *__ast = new (&pool) ObjCFastEnumerationAST;
+ __ast->type_specifier_list = type_specifier_list;
__ast->declarator = declarator;
__ast->initializer = initializer;
__ast->fast_enumeratable_expression = fast_enumeratable_expression;
@@ -882,6 +1050,253 @@ public:
return __ast;
}
+ LambdaExpressionAST *LambdaExpression(LambdaIntroducerAST *lambda_introducer = 0, LambdaDeclaratorAST *lambda_declarator = 0, StatementAST *statement = 0)
+ {
+ LambdaExpressionAST *__ast = new (&pool) LambdaExpressionAST;
+ __ast->lambda_introducer = lambda_introducer;
+ __ast->lambda_declarator = lambda_declarator;
+ __ast->statement = statement;
+ return __ast;
+ }
+
+ LambdaIntroducerAST *LambdaIntroducer(LambdaCaptureAST *lambda_capture = 0)
+ {
+ LambdaIntroducerAST *__ast = new (&pool) LambdaIntroducerAST;
+ __ast->lambda_capture = lambda_capture;
+ return __ast;
+ }
+
+ LambdaCaptureAST *LambdaCapture(CaptureListAST *capture_list = 0)
+ {
+ LambdaCaptureAST *__ast = new (&pool) LambdaCaptureAST;
+ __ast->capture_list = capture_list;
+ return __ast;
+ }
+
+ CaptureAST *Capture()
+ {
+ CaptureAST *__ast = new (&pool) CaptureAST;
+ return __ast;
+ }
+
+ LambdaDeclaratorAST *LambdaDeclarator(ParameterDeclarationClauseAST *parameter_declaration_clause = 0, SpecifierListAST *attributes = 0, ExceptionSpecificationAST *exception_specification = 0, TrailingReturnTypeAST *trailing_return_type = 0)
+ {
+ LambdaDeclaratorAST *__ast = new (&pool) LambdaDeclaratorAST;
+ __ast->parameter_declaration_clause = parameter_declaration_clause;
+ __ast->attributes = attributes;
+ __ast->exception_specification = exception_specification;
+ __ast->trailing_return_type = trailing_return_type;
+ return __ast;
+ }
+
+ TrailingReturnTypeAST *TrailingReturnType(SpecifierListAST *attributes = 0, SpecifierListAST *type_specifier_list = 0, DeclaratorAST *declarator = 0)
+ {
+ TrailingReturnTypeAST *__ast = new (&pool) TrailingReturnTypeAST;
+ __ast->attributes = attributes;
+ __ast->type_specifier_list = type_specifier_list;
+ __ast->declarator = declarator;
+ return __ast;
+ }
+
+ BracedInitializerAST *BracedInitializer(ExpressionListAST *expression_list = 0)
+ {
+ BracedInitializerAST *__ast = new (&pool) BracedInitializerAST;
+ __ast->expression_list = expression_list;
+ return __ast;
+ }
+
+ CatchClauseListAST *CatchClauseList(CatchClauseAST *value, CatchClauseListAST *next = 0)
+ {
+ CatchClauseListAST *__list = new (&pool) CatchClauseListAST;
+ __list->next = next;
+ __list->value = value;
+ return __list;
+ }
+
+ PostfixDeclaratorListAST *PostfixDeclaratorList(PostfixDeclaratorAST *value, PostfixDeclaratorListAST *next = 0)
+ {
+ PostfixDeclaratorListAST *__list = new (&pool) PostfixDeclaratorListAST;
+ __list->next = next;
+ __list->value = value;
+ return __list;
+ }
+
+ ExpressionListAST *ExpressionList(ExpressionAST *value, ExpressionListAST *next = 0)
+ {
+ ExpressionListAST *__list = new (&pool) ExpressionListAST;
+ __list->next = next;
+ __list->value = value;
+ return __list;
+ }
+
+ QtPropertyDeclarationItemListAST *QtPropertyDeclarationItemList(QtPropertyDeclarationItemAST *value, QtPropertyDeclarationItemListAST *next = 0)
+ {
+ QtPropertyDeclarationItemListAST *__list = new (&pool) QtPropertyDeclarationItemListAST;
+ __list->next = next;
+ __list->value = value;
+ return __list;
+ }
+
+ DeclarationListAST *DeclarationList(DeclarationAST *value, DeclarationListAST *next = 0)
+ {
+ DeclarationListAST *__list = new (&pool) DeclarationListAST;
+ __list->next = next;
+ __list->value = value;
+ return __list;
+ }
+
+ ObjCMessageArgumentDeclarationListAST *ObjCMessageArgumentDeclarationList(ObjCMessageArgumentDeclarationAST *value, ObjCMessageArgumentDeclarationListAST *next = 0)
+ {
+ ObjCMessageArgumentDeclarationListAST *__list = new (&pool) ObjCMessageArgumentDeclarationListAST;
+ __list->next = next;
+ __list->value = value;
+ return __list;
+ }
+
+ EnumeratorListAST *EnumeratorList(EnumeratorAST *value, EnumeratorListAST *next = 0)
+ {
+ EnumeratorListAST *__list = new (&pool) EnumeratorListAST;
+ __list->next = next;
+ __list->value = value;
+ return __list;
+ }
+
+ NameListAST *NameList(NameAST *value, NameListAST *next = 0)
+ {
+ NameListAST *__list = new (&pool) NameListAST;
+ __list->next = next;
+ __list->value = value;
+ return __list;
+ }
+
+ AttributeListAST *AttributeList(AttributeAST *value, AttributeListAST *next = 0)
+ {
+ AttributeListAST *__list = new (&pool) AttributeListAST;
+ __list->next = next;
+ __list->value = value;
+ return __list;
+ }
+
+ ObjCSelectorArgumentListAST *ObjCSelectorArgumentList(ObjCSelectorArgumentAST *value, ObjCSelectorArgumentListAST *next = 0)
+ {
+ ObjCSelectorArgumentListAST *__list = new (&pool) ObjCSelectorArgumentListAST;
+ __list->next = next;
+ __list->value = value;
+ return __list;
+ }
+
+ NestedNameSpecifierListAST *NestedNameSpecifierList(NestedNameSpecifierAST *value, NestedNameSpecifierListAST *next = 0)
+ {
+ NestedNameSpecifierListAST *__list = new (&pool) NestedNameSpecifierListAST;
+ __list->next = next;
+ __list->value = value;
+ return __list;
+ }
+
+ BaseSpecifierListAST *BaseSpecifierList(BaseSpecifierAST *value, BaseSpecifierListAST *next = 0)
+ {
+ BaseSpecifierListAST *__list = new (&pool) BaseSpecifierListAST;
+ __list->next = next;
+ __list->value = value;
+ return __list;
+ }
+
+ ObjCPropertyAttributeListAST *ObjCPropertyAttributeList(ObjCPropertyAttributeAST *value, ObjCPropertyAttributeListAST *next = 0)
+ {
+ ObjCPropertyAttributeListAST *__list = new (&pool) ObjCPropertyAttributeListAST;
+ __list->next = next;
+ __list->value = value;
+ return __list;
+ }
+
+ MemInitializerListAST *MemInitializerList(MemInitializerAST *value, MemInitializerListAST *next = 0)
+ {
+ MemInitializerListAST *__list = new (&pool) MemInitializerListAST;
+ __list->next = next;
+ __list->value = value;
+ return __list;
+ }
+
+ StatementListAST *StatementList(StatementAST *value, StatementListAST *next = 0)
+ {
+ StatementListAST *__list = new (&pool) StatementListAST;
+ __list->next = next;
+ __list->value = value;
+ return __list;
+ }
+
+ ParameterDeclarationListAST *ParameterDeclarationList(ParameterDeclarationAST *value, ParameterDeclarationListAST *next = 0)
+ {
+ ParameterDeclarationListAST *__list = new (&pool) ParameterDeclarationListAST;
+ __list->next = next;
+ __list->value = value;
+ return __list;
+ }
+
+ ObjCMessageArgumentListAST *ObjCMessageArgumentList(ObjCMessageArgumentAST *value, ObjCMessageArgumentListAST *next = 0)
+ {
+ ObjCMessageArgumentListAST *__list = new (&pool) ObjCMessageArgumentListAST;
+ __list->next = next;
+ __list->value = value;
+ return __list;
+ }
+
+ NewArrayDeclaratorListAST *NewArrayDeclaratorList(NewArrayDeclaratorAST *value, NewArrayDeclaratorListAST *next = 0)
+ {
+ NewArrayDeclaratorListAST *__list = new (&pool) NewArrayDeclaratorListAST;
+ __list->next = next;
+ __list->value = value;
+ return __list;
+ }
+
+ SpecifierListAST *SpecifierList(SpecifierAST *value, SpecifierListAST *next = 0)
+ {
+ SpecifierListAST *__list = new (&pool) SpecifierListAST;
+ __list->next = next;
+ __list->value = value;
+ return __list;
+ }
+
+ ObjCSynthesizedPropertyListAST *ObjCSynthesizedPropertyList(ObjCSynthesizedPropertyAST *value, ObjCSynthesizedPropertyListAST *next = 0)
+ {
+ ObjCSynthesizedPropertyListAST *__list = new (&pool) ObjCSynthesizedPropertyListAST;
+ __list->next = next;
+ __list->value = value;
+ return __list;
+ }
+
+ DeclaratorListAST *DeclaratorList(DeclaratorAST *value, DeclaratorListAST *next = 0)
+ {
+ DeclaratorListAST *__list = new (&pool) DeclaratorListAST;
+ __list->next = next;
+ __list->value = value;
+ return __list;
+ }
+
+ QtInterfaceNameListAST *QtInterfaceNameList(QtInterfaceNameAST *value, QtInterfaceNameListAST *next = 0)
+ {
+ QtInterfaceNameListAST *__list = new (&pool) QtInterfaceNameListAST;
+ __list->next = next;
+ __list->value = value;
+ return __list;
+ }
+
+ PtrOperatorListAST *PtrOperatorList(PtrOperatorAST *value, PtrOperatorListAST *next = 0)
+ {
+ PtrOperatorListAST *__list = new (&pool) PtrOperatorListAST;
+ __list->next = next;
+ __list->value = value;
+ return __list;
+ }
+
+ CaptureListAST *CaptureList(CaptureAST *value, CaptureListAST *next = 0)
+ {
+ CaptureListAST *__list = new (&pool) CaptureListAST;
+ __list->next = next;
+ __list->value = value;
+ return __list;
+ }
+
};
} // end of namespace CPlusPlus
diff --git a/src/tools/gen-cpp-ast/generate-ast.cpp b/src/tools/gen-cpp-ast/generate-ast.cpp
index 1d958dcb4c..1b754353e9 100644
--- a/src/tools/gen-cpp-ast/generate-ast.cpp
+++ b/src/tools/gen-cpp-ast/generate-ast.cpp
@@ -1447,10 +1447,11 @@ void generateASTPatternBuilder_h(const QDir &cplusplusDir)
<< "public:" << endl
<< " ASTPatternBuilder() {}" << endl
<< endl
- << " void reset() { pool.reset(); };" << endl
+ << " void reset() { pool.reset(); }" << endl
<< endl;
Control *control = AST_h_document->control();
+ QSet<QString> listClasses;
foreach (ClassSpecifierAST *classNode, astNodes.deriveds) {
Class *klass = classNode->symbol;
@@ -1490,8 +1491,8 @@ void generateASTPatternBuilder_h(const QDir &cplusplusDir)
const QString tyName = oo(ptrTy->elementType());
if (tyName.endsWith("ListAST"))
- continue;
- else if (tyName.endsWith("AST")) {
+ listClasses.insert(tyName);
+ if (tyName.endsWith("AST")) {
if (! first)
out << ", ";
@@ -1521,6 +1522,21 @@ void generateASTPatternBuilder_h(const QDir &cplusplusDir)
<< endl;
}
+ foreach (const QString &className, listClasses) {
+ const QString methodName = className.left(className.length() - 3);
+ const QString elementName = className.left(className.length() - 7) + QLatin1String("AST");
+ out
+ << " " << className << " *" << methodName << "("
+ << elementName << " *value, " << className << " *next = 0)" << endl
+ << " {" << endl
+ << " " << className << " *__list = new (&pool) " << className << ";" << endl
+ << " __list->next = next;" << endl
+ << " __list->value = value;" << endl
+ << " return __list;" << endl
+ << " }" << endl
+ << endl;
+ }
+
out
<< "};" << endl
<< endl
@@ -1557,5 +1573,5 @@ int main(int argc, char *argv[])
astDerivedClasses.sort();
generateASTFwd_h(snapshot, cplusplusDir, astDerivedClasses);
- //generateASTPatternBuilder_h(cplusplusDir);
+ generateASTPatternBuilder_h(cplusplusDir);
}