⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ast.h

📁 qt-x11-opensource-src-4.1.4.tar.gz源码
💻 H
📖 第 1 页 / 共 3 页
字号:
};class InitDeclaratorAST: public AST{public:    enum { Type = NodeType_InitDeclarator };public:    InitDeclaratorAST();    inline DeclaratorAST *declarator() const { return m_declarator; }    void setDeclarator(DeclaratorAST *declarator);    inline AST *initializer() const { return m_initializer; }    void setInitializer(AST *initializer);private:    DeclaratorAST* m_declarator;    AST* m_initializer;private:    InitDeclaratorAST(const InitDeclaratorAST &source);    void operator = (const InitDeclaratorAST &source);};class InitDeclaratorListAST: public AST{public:    enum { Type = NodeType_InitDeclaratorList };public:    InitDeclaratorListAST();    inline List<InitDeclaratorAST *> *initDeclaratorList() const { return m_initDeclaratorList; }    void addInitDeclarator(InitDeclaratorAST *decl);private:    List<InitDeclaratorAST *> *m_initDeclaratorList;private:    InitDeclaratorListAST(const InitDeclaratorListAST &source);    void operator = (const InitDeclaratorListAST &source);};class TypedefAST: public DeclarationAST{public:    enum { Type = NodeType_Typedef };public:    TypedefAST();    inline TypeSpecifierAST *typeSpec() const { return m_typeSpec; }    void setTypeSpec(TypeSpecifierAST *typeSpec);    inline InitDeclaratorListAST *initDeclaratorList() const { return m_initDeclaratorList; }    void setInitDeclaratorList(InitDeclaratorListAST *initDeclaratorList);private:    TypeSpecifierAST* m_typeSpec;    InitDeclaratorListAST* m_initDeclaratorList;private:    void operator = (const TypedefAST &source);};class TemplateParameterAST: public AST{public:    enum { Type = NodeType_TemplateParameter };public:    TemplateParameterAST();    inline TypeParameterAST *typeParameter() const { return m_typeParameter; }    void setTypeParameter(TypeParameterAST *typeParameter);    inline ParameterDeclarationAST *typeValueParameter() const { return m_typeValueParameter; }    void setTypeValueParameter(ParameterDeclarationAST *typeValueParameter);private:    TypeParameterAST* m_typeParameter;    ParameterDeclarationAST* m_typeValueParameter;private:    TemplateParameterAST(const TemplateParameterAST &source);    void operator = (const TemplateParameterAST &source);};class TemplateParameterListAST: public AST{public:    enum { Type = NodeType_TemplateParameterList };public:    TemplateParameterListAST();    inline List<TemplateParameterAST *> *templateParameterList() const { return m_templateParameterList; }    void addTemplateParameter(TemplateParameterAST *templateParameter);private:    List<TemplateParameterAST *> *m_templateParameterList;private:    TemplateParameterListAST(const TemplateParameterListAST &source);    void operator = (const TemplateParameterListAST &source);};class TemplateDeclarationAST: public DeclarationAST{public:    enum { Type = NodeType_TemplateDeclaration };public:    TemplateDeclarationAST();    inline AST *exported() const { return m_exported; }    void setExported(AST *exported);    inline TemplateParameterListAST *templateParameterList() const { return m_templateParameterList; }    void setTemplateParameterList(TemplateParameterListAST *templateParameterList);    inline DeclarationAST *declaration() const { return m_declaration; }    void setDeclaration(DeclarationAST *declaration);private:    AST* m_exported;    TemplateParameterListAST* m_templateParameterList;    DeclarationAST* m_declaration;private:    TemplateDeclarationAST(const TemplateDeclarationAST &source);    void operator = (const TemplateDeclarationAST &source);};class SimpleDeclarationAST: public DeclarationAST{public:    enum { Type = NodeType_SimpleDeclaration };public:    SimpleDeclarationAST();    inline AST *functionSpecifier() const { return m_functionSpecifier; }    void setFunctionSpecifier(AST *functionSpecifier);    inline AST *storageSpecifier() const { return m_storageSpecifier; }    void setStorageSpecifier(AST *storageSpecifier);    inline TypeSpecifierAST *typeSpec() const { return m_typeSpec; }    void setTypeSpec(TypeSpecifierAST *typeSpec);    inline InitDeclaratorListAST *initDeclaratorList() const { return m_initDeclaratorList; }    void setInitDeclaratorList(InitDeclaratorListAST *initDeclaratorList);    inline AST *winDeclSpec() const { return m_winDeclSpec; }    void setWinDeclSpec(AST *winDeclSpec);private:    AST* m_functionSpecifier;    AST* m_storageSpecifier;    TypeSpecifierAST* m_typeSpec;    InitDeclaratorListAST* m_initDeclaratorList;    AST* m_winDeclSpec;private:    SimpleDeclarationAST(const SimpleDeclarationAST &source);    void operator = (const SimpleDeclarationAST &source);};class ExpressionStatementAST: public StatementAST{public:    enum { Type = NodeType_ExpressionStatement };public:    ExpressionStatementAST();    inline AbstractExpressionAST *expression() const { return m_expression; }    void setExpression(AbstractExpressionAST *expression);private:    AbstractExpressionAST* m_expression;private:    ExpressionStatementAST(const ExpressionStatementAST &source);    void operator = (const ExpressionStatementAST &source);};class ReturnStatementAST: public StatementAST{public:    enum { Type = NodeType_ReturnStatement };public:    ReturnStatementAST();    inline AbstractExpressionAST *expression() const { return m_expression; }    void setExpression(AbstractExpressionAST *expression);private:    AbstractExpressionAST* m_expression;private:    ReturnStatementAST(const ReturnStatementAST &source);    void operator = (const ReturnStatementAST &source);};class ConditionAST: public AST{public:    enum { Type = NodeType_Condition };public:    ConditionAST();    inline TypeSpecifierAST *typeSpec() const { return m_typeSpec; }    void setTypeSpec(TypeSpecifierAST *typeSpec);    inline DeclaratorAST *declarator() const { return m_declarator; }    void setDeclarator(DeclaratorAST *declarator);    inline AbstractExpressionAST *expression() const { return m_expression; }    void setExpression(AbstractExpressionAST *expression);private:    TypeSpecifierAST* m_typeSpec;    DeclaratorAST* m_declarator;    AbstractExpressionAST* m_expression;private:    ConditionAST(const ConditionAST &source);    void operator = (const ConditionAST &source);};class IfStatementAST: public StatementAST{public:    enum { Type = NodeType_IfStatement };public:    IfStatementAST();    inline ConditionAST *condition() const { return m_condition; }    void setCondition(ConditionAST *condition);    inline StatementAST *statement() const { return m_statement; }    void setStatement(StatementAST *statement);    inline StatementAST *elseStatement() const { return m_elseStatement; }    void setElseStatement(StatementAST *statement);private:    ConditionAST* m_condition;    StatementAST* m_statement;    StatementAST* m_elseStatement;private:    IfStatementAST(const IfStatementAST &source);    void operator = (const IfStatementAST &source);};class WhileStatementAST: public StatementAST{public:    enum { Type = NodeType_WhileStatement };public:    WhileStatementAST();    inline ConditionAST *condition() const { return m_condition; }    void setCondition(ConditionAST *condition);    inline StatementAST *statement() const { return m_statement; }    void setStatement(StatementAST *statement);private:    ConditionAST* m_condition;    StatementAST* m_statement;private:    WhileStatementAST(const WhileStatementAST &source);    void operator = (const WhileStatementAST &source);};class DoStatementAST: public StatementAST{public:    enum { Type = NodeType_DoStatement };public:    DoStatementAST();    inline ConditionAST *condition() const { return m_condition; }    void setCondition(ConditionAST *condition);    inline StatementAST *statement() const { return m_statement; }    void setStatement(StatementAST *statement);private:    ConditionAST* m_condition;    StatementAST* m_statement;private:    DoStatementAST(const DoStatementAST &source);    void operator = (const DoStatementAST &source);};class ForStatementAST: public StatementAST{public:    enum { Type = NodeType_ForStatement };public:    ForStatementAST();    inline StatementAST *initStatement() const { return m_initStatement; }    void setInitStatement(StatementAST *statement);    inline ConditionAST *condition() const { return m_condition; }    void setCondition(ConditionAST *condition);    inline AbstractExpressionAST *expression() const { return m_expression; }    void setExpression(AbstractExpressionAST *expression);    inline StatementAST *statement() const { return m_statement; }    void setStatement(StatementAST *statement);private:    ConditionAST* m_condition;    StatementAST* m_initStatement;    StatementAST* m_statement;    AbstractExpressionAST* m_expression;private:    ForStatementAST(const ForStatementAST &source);    void operator = (const ForStatementAST &source);};class SwitchStatementAST: public StatementAST{public:    enum { Type = NodeType_SwitchStatement };public:    SwitchStatementAST();    inline ConditionAST *condition() const { return m_condition; }    void setCondition(ConditionAST *condition);    inline StatementAST *statement() const { return m_statement; }    void setStatement(StatementAST *statement);private:    ConditionAST* m_condition;    StatementAST* m_statement;private:    SwitchStatementAST(const SwitchStatementAST &source);    void operator = (const SwitchStatementAST &source);};class StatementListAST: public StatementAST{public:    enum { Type = NodeType_StatementList };public:    StatementListAST();    inline List<StatementAST *> *statementList() const { return m_statementList; }    void addStatement(StatementAST *statement);private:    List<StatementAST *> *m_statementList;private:    StatementListAST(const StatementListAST &source);    void operator = (const StatementListAST &source);};class DeclarationStatementAST: public StatementAST{public:    enum { Type = NodeType_DeclarationStatement };public:    DeclarationStatementAST();    inline DeclarationAST *declaration() const { return m_declaration; }    void setDeclaration(DeclarationAST *declaration);private:    DeclarationAST* m_declaration;private:    DeclarationStatementAST(const DeclarationStatementAST &source);    void operator = (const DeclarationStatementAST &source);};/*    LabeledStatementAST:        case constant-expression : statement        default : statement (expression is 0)*/class LabeledStatementAST: public StatementAST{public:    enum { Type = NodeType_LabeledStatement };public:    LabeledStatementAST();    inline StatementAST *statement() const { return m_statement; }    void setStatement(StatementAST *statement);    inline AbstractExpressionAST *expression() const { return m_expression; }    void setExpression(AbstractExpressionAST *expression);private:    StatementAST* m_statement;    AbstractExpressionAST *m_expression;private:    LabeledStatementAST(const LabeledStatementAST &source);    void operator = (const LabeledStatementAST &source);};class FunctionDefinitionAST: public DeclarationAST{public:    enum { Type = NodeType_FunctionDefinition };public:    FunctionDefinitionAST();    inline AST *functionSpecifier() const { return m_functionSpecifier; }    void setFunctionSpecifier(AST *functionSpecifier);    inline AST *storageSpecifier() const { return m_storageSpecifier; }    void setStorageSpecifier(AST *storageSpecifier);    inline TypeSpecifierAST *typeSpec() const { return m_typeSpec; }    void setTypeSpec(TypeSpecifierAST *typeSpec);    inline InitDeclaratorAST *initDeclarator() const { return m_initDeclarator; }    void setInitDeclarator(InitDeclaratorAST *initDeclarator);    inline StatementListAST *functionBody() const { return m_functionBody; }    void setFunctionBody(StatementListAST *functionBody);    inline AST *winDeclSpec() const { return m_winDeclSpec; }    void setWinDeclSpec(AST *winDeclSpec);private:    AST* m_functionSpecifier;    AST* m_storageSpecifier;    TypeSpecifierAST* m_typeSpec;    InitDeclaratorAST* m_initDeclarator;    StatementListAST* m_functionBody;    AST* m_winDeclSpec;private:    FunctionDefinitionAST(const FunctionDefinitionAST &source);    void operator = (const FunctionDefinitionAST &source);};class TranslationUnitAST: public AST{public:    enum { Type = NodeType_TranslationUnit };public:    TranslationUnitAST();    void addDeclaration(DeclarationAST *ast);    inline List<DeclarationAST *> *declarationList() const { return m_declarationList; }private:    List<DeclarationAST *> *m_declarationList;private:    TranslationUnitAST(const TranslationUnitAST &source);    void operator = (const TranslationUnitAST &source);};template <class T> T* CreateNode(pool *p){    T* node = new (p->allocate(sizeof(T))) T;    node->setNodeType(T::Type);    node->_pool = p;    return node;}template <int kind> ExpressionAST<kind> *CreateExpression(pool *p){    ExpressionAST<kind>* node = new (p->allocate(sizeof(ExpressionAST<kind>))) ExpressionAST<kind>;    node->setNodeType(kind);    node->_pool = p;    return node;}/*template <typename T>inline List<T *> *snoc(List<T *> *e, T *d, pool *p){ if (!e) e = new (p->allocate(sizeof(List<T*>))) List<T *>(p); e->append(d); return e; }*///Workaround for ICE on MSVC, use macro instead of template.#define SNOC(ListType, ListValueType) \inline ListType *snoc(ListType *e, ListValueType *d, pool *p) \{ if (!e) e = new (p->allocate(sizeof(ListType))) ListType(p); e->append(d); return e; }SNOC(List<AST *>, AST)SNOC(List<ClassOrNamespaceNameAST *>, ClassOrNamespaceNameAST)SNOC(List<BaseSpecifierAST *>, BaseSpecifierAST)SNOC(List<DeclarationAST *>, DeclarationAST)SNOC(List<EnumeratorAST *>, EnumeratorAST)SNOC(List<ParameterDeclarationAST *>, ParameterDeclarationAST)SNOC(List<InitDeclaratorAST *>, InitDeclaratorAST)SNOC(List<TemplateParameterAST *>, TemplateParameterAST)SNOC(List<StatementAST *>, StatementAST)#endif // AST_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -