📄 ast.h
字号:
public: enum { Type = NodeType_ClassOrNamespaceName };public: ClassOrNamespaceNameAST(); inline AST *name() const { return m_name; } void setName(AST *name); inline TemplateArgumentListAST *templateArgumentList() const { return m_templateArgumentList; } void setTemplateArgumentList(TemplateArgumentListAST *templateArgumentList);private: AST* m_name; TemplateArgumentListAST* m_templateArgumentList;private: ClassOrNamespaceNameAST(const ClassOrNamespaceNameAST &source); void operator = (const ClassOrNamespaceNameAST &source);};class NameAST: public AST{public: enum { Type = NodeType_Name };public: NameAST(); inline bool isGlobal() const { return m_global; } void setGlobal(bool b); void addClassOrNamespaceName(ClassOrNamespaceNameAST *classOrNamespaceName); inline List<ClassOrNamespaceNameAST *> *classOrNamespaceNameList() const { return m_classOrNamespaceNameList; } inline ClassOrNamespaceNameAST *unqualifiedName() const { return m_unqualifiedName; } void setUnqualifiedName(ClassOrNamespaceNameAST *unqualifiedName);private: bool m_global; ClassOrNamespaceNameAST* m_unqualifiedName; List<ClassOrNamespaceNameAST *> *m_classOrNamespaceNameList;private: NameAST(const NameAST &source); void operator = (const NameAST &source);};class TypeParameterAST: public AST{public: enum { Type = NodeType_TypeParameter };public: TypeParameterAST(); inline AST *kind() const { return m_kind; } void setKind(AST *kind); inline class TemplateParameterListAST *templateParameterList() const { return m_templateParameterList; } void setTemplateParameterList(class TemplateParameterListAST *templateParameterList); inline NameAST *name() const { return m_name; } void setName(NameAST *name); inline AST *typeId() const { return m_typeId; } void setTypeId(AST *typeId);private: AST* m_kind; class TemplateParameterListAST *m_templateParameterList; NameAST* m_name; AST* m_typeId;private: TypeParameterAST(const TypeParameterAST &source); void operator = (const TypeParameterAST &source);};class DeclarationAST: public AST{public: enum { Type = NodeType_Declaration };public: DeclarationAST();private: DeclarationAST(const DeclarationAST &source); void operator = (const DeclarationAST &source);};class AccessDeclarationAST: public DeclarationAST{public: enum { Type = NodeType_AccessDeclaration };public: AccessDeclarationAST(); inline List<AST *> *accessList() const { return m_accessList; } void addAccess(AST *access);private: List<AST *> *m_accessList;private: AccessDeclarationAST(const AccessDeclarationAST &source); void operator = (const AccessDeclarationAST &source);};class TypeSpecifierAST: public AST{public: enum { Type = NodeType_TypeSpecifier };public: TypeSpecifierAST(); inline virtual NameAST *name() const { return m_name; } virtual void setName(NameAST *name); inline AST *cvQualify() const { return m_cvQualify; } void setCvQualify(AST *cvQualify); inline AST *cv2Qualify() const { return m_cv2Qualify; } void setCv2Qualify(AST *cv2Qualify);private: NameAST* m_name; AST* m_cvQualify; AST* m_cv2Qualify;private: TypeSpecifierAST(const TypeSpecifierAST &source); void operator = (const TypeSpecifierAST &source);};class BaseSpecifierAST: public AST{public: enum { Type = NodeType_BaseSpecifier };public: BaseSpecifierAST(); inline AST *isVirtual() const { return m_isVirtual; } void setIsVirtual(AST *isVirtual); inline AST *access() const { return m_access; } void setAccess(AST *access); inline NameAST *name() const { return m_name; } void setName(NameAST *name);private: AST* m_isVirtual; AST* m_access; NameAST* m_name;private: BaseSpecifierAST(const BaseSpecifierAST &source); void operator = (const BaseSpecifierAST &source);};class BaseClauseAST: public AST{public: enum { Type = NodeType_BaseClause };public: BaseClauseAST(); void addBaseSpecifier(BaseSpecifierAST *baseSpecifier); inline List<BaseSpecifierAST *> *baseSpecifierList() const { return m_baseSpecifierList; }private: List<BaseSpecifierAST *> *m_baseSpecifierList;private: BaseClauseAST(const BaseClauseAST &source); void operator = (const BaseClauseAST &source);};class ClassSpecifierAST: public TypeSpecifierAST{public: enum { Type = NodeType_ClassSpecifier };public: ClassSpecifierAST(); inline AST *winDeclSpec() const { return m_winDeclSpec; } void setWinDeclSpec(AST *winDeclSpec); inline AST *classKey() const { return m_classKey; } void setClassKey(AST *classKey); inline BaseClauseAST *baseClause() const { return m_baseClause; } void setBaseClause(BaseClauseAST *baseClause); inline List<DeclarationAST *> *declarationList() const { return m_declarationList; } void addDeclaration(DeclarationAST *declaration);private: AST* m_winDeclSpec; AST* m_classKey; BaseClauseAST* m_baseClause; List<DeclarationAST *> *m_declarationList;private: ClassSpecifierAST(const ClassSpecifierAST &source); void operator = (const ClassSpecifierAST &source);};class EnumeratorAST: public AST{public: enum { Type = NodeType_Enumerator };public: EnumeratorAST(); inline AST *id() const { return m_id; } void setId(AST *id); inline AbstractExpressionAST *expression() const { return m_expression; } void setExpression(AbstractExpressionAST *expr);private: AST* m_id; AbstractExpressionAST* m_expression;private: EnumeratorAST(const EnumeratorAST &source); void operator = (const EnumeratorAST &source);};class EnumSpecifierAST: public TypeSpecifierAST{public: enum { Type = NodeType_EnumSpecifier };public: EnumSpecifierAST(); void addEnumerator(EnumeratorAST *enumerator); inline List<EnumeratorAST *> *enumeratorList() const { return m_enumeratorList; }private: List<EnumeratorAST *> *m_enumeratorList;private: EnumSpecifierAST(const EnumSpecifierAST &source); void operator = (const EnumSpecifierAST &source);};class ElaboratedTypeSpecifierAST: public TypeSpecifierAST{public: enum { Type = NodeType_ElaboratedTypeSpecifier };public: ElaboratedTypeSpecifierAST(); inline AST *kind() const { return m_kind; } void setKind(AST *kind);private: AST* m_kind;private: ElaboratedTypeSpecifierAST(const ElaboratedTypeSpecifierAST &source); void operator = (const ElaboratedTypeSpecifierAST &source);};class LinkageBodyAST: public AST{public: enum { Type = NodeType_LinkageBody };public: LinkageBodyAST(); void addDeclaration(DeclarationAST *ast); inline List<DeclarationAST *> *declarationList() const { return m_declarationList; }private: List<DeclarationAST *> *m_declarationList;private: LinkageBodyAST(const LinkageBodyAST &source); void operator = (const LinkageBodyAST &source);};class LinkageSpecificationAST: public DeclarationAST{public: enum { Type = NodeType_LinkageSpecification };public: LinkageSpecificationAST(); inline AST *externType() const { return m_externType; } void setExternType(AST *externType); inline LinkageBodyAST *linkageBody() const { return m_linkageBody; } void setLinkageBody(LinkageBodyAST *linkageBody); inline DeclarationAST *declaration() const { return m_declaration; } void setDeclaration(DeclarationAST *decl);private: AST* m_externType; LinkageBodyAST* m_linkageBody; DeclarationAST* m_declaration;private: LinkageSpecificationAST(const LinkageSpecificationAST &source); void operator = (const LinkageSpecificationAST &source);};class NamespaceAST: public DeclarationAST{public: enum { Type = NodeType_Namespace };public: NamespaceAST(); inline AST *namespaceName() const { return m_namespaceName; } void setNamespaceName(AST *namespaceName); inline LinkageBodyAST *linkageBody() const { return m_linkageBody; } void setLinkageBody(LinkageBodyAST *linkageBody);private: AST* m_namespaceName; LinkageBodyAST* m_linkageBody;private: NamespaceAST(const NamespaceAST &source); void operator = (const NamespaceAST &source);};class NamespaceAliasAST: public DeclarationAST{public: enum { Type = NodeType_NamespaceAlias };public: NamespaceAliasAST(); inline AST *namespaceName() const { return m_namespaceName; } void setNamespaceName(AST *name); inline NameAST *aliasName() const { return m_aliasName; } void setAliasName(NameAST *name);private: AST* m_namespaceName; NameAST* m_aliasName;private: NamespaceAliasAST(const NamespaceAliasAST &source); void operator = (const NamespaceAliasAST &source);};class UsingAST: public DeclarationAST{public: enum { Type = NodeType_Using };public: UsingAST(); inline AST *typeName() const { return m_typeName; } void setTypeName(AST *typeName); inline NameAST *name() const { return m_name; } void setName(NameAST *name);private: AST* m_typeName; NameAST* m_name;private: UsingAST(const UsingAST &source); void operator = (const UsingAST &source);};class UsingDirectiveAST: public DeclarationAST{public: enum { Type = NodeType_UsingDirective };public: UsingDirectiveAST(); inline NameAST *name() const { return m_name; } void setName(NameAST *name);private: NameAST* m_name;private: UsingDirectiveAST(const UsingDirectiveAST &source); void operator = (const UsingDirectiveAST &source);};class DeclaratorAST: public AST{public: enum { Type = NodeType_Declarator };public: DeclaratorAST(); inline List<AST *> *ptrOpList() const { return m_ptrOpList; } void addPtrOp(AST *ptrOp); inline DeclaratorAST *subDeclarator() const { return m_subDeclarator; } void setSubDeclarator(DeclaratorAST *subDeclarator); inline NameAST *declaratorId() const { return m_declaratorId; } void setDeclaratorId(NameAST *declaratorId); inline AST *bitfieldInitialization() const { return m_bitfieldInitialization; } void setBitfieldInitialization(AST *bitfieldInitialization); inline List<AST *> *arrayDimensionList() const { return m_arrayDimensionList; } void addArrayDimension(AST *arrayDimension); inline class ParameterDeclarationClauseAST *parameterDeclarationClause() const { return m_parameterDeclarationClause; } void setParameterDeclarationClause(class ParameterDeclarationClauseAST *parameterDeclarationClause); // ### replace 'constant' with cvQualify inline AST *constant() const { return m_constant; } void setConstant(AST *constant); inline AST *exceptionSpecification() const { return m_exceptionSpecification; } void setExceptionSpecification(AST *exceptionSpecification);private: List<AST *> *m_ptrOpList; DeclaratorAST * m_subDeclarator; NameAST* m_declaratorId; AST* m_bitfieldInitialization; List<AST *> *m_arrayDimensionList; class ParameterDeclarationClauseAST * m_parameterDeclarationClause; AST* m_constant; AST* m_exceptionSpecification;private: DeclaratorAST(const DeclaratorAST &source); void operator = (const DeclaratorAST &source);};class ParameterDeclarationAST: public AST{public: enum { Type = NodeType_ParameterDeclaration };public: ParameterDeclarationAST(); 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: ParameterDeclarationAST(const ParameterDeclarationAST &source); void operator = (const ParameterDeclarationAST &source);};class ParameterDeclarationListAST: public AST{public: enum { Type = NodeType_ParameterDeclarationList };public: ParameterDeclarationListAST(); inline List<ParameterDeclarationAST *> *parameterList() const { return m_parameterList; } void addParameter(ParameterDeclarationAST *parameter);private: List<ParameterDeclarationAST *> *m_parameterList;private: ParameterDeclarationListAST(const ParameterDeclarationListAST &source); void operator = (const ParameterDeclarationListAST &source);};class ParameterDeclarationClauseAST: public AST{public: enum { Type = NodeType_ParameterDeclarationClause };public: ParameterDeclarationClauseAST(); inline ParameterDeclarationListAST *parameterDeclarationList() const { return m_parameterDeclarationList; } void setParameterDeclarationList(ParameterDeclarationListAST *parameterDeclarationList); inline AST *ellipsis() const { return m_ellipsis; } void setEllipsis(AST *ellipsis);private: ParameterDeclarationListAST* m_parameterDeclarationList; AST* m_ellipsis;private: ParameterDeclarationClauseAST(const ParameterDeclarationClauseAST &source); void operator = (const ParameterDeclarationClauseAST &source);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -