Added parser support for Q_INTERFACES.

This commit is contained in:
Erik Verbruggen
2010-03-16 17:29:40 +01:00
parent 61132f260c
commit b4d72a78db
15 changed files with 289 additions and 3 deletions

View File

@@ -256,6 +256,8 @@ public:
virtual PtrOperatorAST *asPtrOperator() { return 0; }
virtual QtEnumDeclarationAST *asQtEnumDeclaration() { return 0; }
virtual QtFlagsDeclarationAST *asQtFlagsDeclaration() { return 0; }
virtual QtInterfaceNameAST *asQtInterfaceName() { return 0; }
virtual QtInterfacesDeclarationAST *asQtInterfacesDeclaration() { return 0; }
virtual QtMemberDeclarationAST *asQtMemberDeclaration() { return 0; }
virtual QtMethodAST *asQtMethod() { return 0; }
virtual QtPropertyDeclarationAST *asQtPropertyDeclaration() { return 0; }
@@ -660,6 +662,46 @@ protected:
virtual bool match0(AST *, ASTMatcher *);
};
class CPLUSPLUS_EXPORT QtInterfaceNameAST: public AST
{
public:
NameAST *interface_name;
NameListAST *constraint_list;
public:
virtual QtInterfaceNameAST *asQtInterfaceName() { return this; }
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
virtual QtInterfaceNameAST *clone(MemoryPool *pool) const;
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
};
class CPLUSPLUS_EXPORT QtInterfacesDeclarationAST: public DeclarationAST
{
public:
unsigned interfaces_token;
unsigned lparen_token;
QtInterfaceNameListAST *interface_name_list;
unsigned rparen_token;
public:
virtual QtInterfacesDeclarationAST *asQtInterfacesDeclaration() { return this; }
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
virtual QtInterfacesDeclarationAST *clone(MemoryPool *pool) const;
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
};
class CPLUSPLUS_EXPORT AsmDefinitionAST: public DeclarationAST
{
public: