CppParser
Loading...
Searching...
No Matches
cppvisitorbase.h
Go to the documentation of this file.
1//
2// Created by saleh on 6/22/23.
3//
4
5#pragma once
6
12#include "cppast.h"
13#include "cppconst.h"
14
15struct CppVarType;
16struct CppCompound;
17struct CppUnRecogPrePro;
18struct CppUndef;
19struct CppUsingDecl;
21struct CppVar;
22struct CppVarList;
23template <CppObjType _ObjType> struct CppCommonBlock;
24struct CppAsmBlock;
25struct CppBlob;
26struct CppDefine;
27struct CppDocComment;
28struct CppEnum;
29struct CppExpr;
30struct CppForBlock;
31struct CppLambda;
32struct CppDestructor;
33struct CppConstructor;
34struct CppFunction;
36struct CppTypeConverter;
37struct CppFwdClsDecl;
38struct CppHashError;
39struct CppHashIf;
40struct CppHashWarning;
41struct CppImport;
42struct CppInclude;
43struct CppLabel;
44struct CppMacroCall;
46struct CppPragma;
47struct CppRangeForBlock;
48struct CppSwitchBlock;
49struct CppTryBlock;
50struct CppTypedefList;
51struct CppTypedefName;
52
54{
55public:
56 virtual ~CppVisitorBase() = default;
57
63 virtual bool visit(CppVarType *p) = 0;
64 virtual bool visit(CppCompound *p) = 0;
65 virtual bool visit(CppUnRecogPrePro *p) = 0;
66 virtual bool visit(CppUndef *p) = 0;
67 virtual bool visit(CppUsingDecl *p) = 0;
68 virtual bool visit(CppUsingNamespaceDecl *p) = 0;
69 virtual bool visit(CppVar *p) = 0;
70 virtual bool visit(CppVarList *p) = 0;
74 virtual bool visit(CppAsmBlock *p) = 0;
75 virtual bool visit(CppBlob *p) = 0;
76 virtual bool visit(CppDefine *p) = 0;
77 virtual bool visit(CppDocComment *p) = 0;
78 virtual bool visit(CppEnum *p) = 0;
79 virtual bool visit(CppExpr *p) = 0;
80 virtual bool visit(CppForBlock *p) = 0;
81 virtual bool visit(CppLambda *p) = 0;
82 virtual bool visit(CppDestructor *p) = 0;
83 virtual bool visit(CppConstructor *p) = 0;
84 virtual bool visit(CppFunction *p) = 0;
85 virtual bool visit(CppFunctionPointer *p) = 0;
86 virtual bool visit(CppTypeConverter *p) = 0;
87 virtual bool visit(CppFwdClsDecl *p) = 0;
88 virtual bool visit(CppHashError *p) = 0;
89 virtual bool visit(CppHashIf *p) = 0;
90 virtual bool visit(CppHashWarning *p) = 0;
91 virtual bool visit(CppImport *p) = 0;
92 virtual bool visit(CppInclude *p) = 0;
93 virtual bool visit(CppLabel *p) = 0;
94 virtual bool visit(CppMacroCall *p) = 0;
95 virtual bool visit(CppNamespaceAlias *p) = 0;
96 virtual bool visit(CppPragma *p) = 0;
97 virtual bool visit(CppRangeForBlock *p) = 0;
98 virtual bool visit(CppSwitchBlock *p) = 0;
99 virtual bool visit(CppTryBlock *p) = 0;
100 virtual bool visit(CppTypedefList *p) = 0;
101 virtual bool visit(CppTypedefName *p) = 0;
102};
virtual bool visit(CppImport *p)=0
virtual bool visit(CppUsingDecl *p)=0
virtual bool visit(CppAsmBlock *p)=0
virtual bool visit(CppHashError *p)=0
virtual bool visit(CppForBlock *p)=0
virtual bool visit(CppExpr *p)=0
virtual bool visit(CppLambda *p)=0
virtual bool visit(CppConstructor *p)=0
virtual bool visit(CppUsingNamespaceDecl *p)=0
virtual ~CppVisitorBase()=default
virtual bool visit(CppVar *p)=0
virtual bool visit(CppBlob *p)=0
virtual bool visit(CppCommonBlock< CppObjType::kDoWhileBlock > *p)=0
virtual bool visit(CppInclude *p)=0
virtual bool visit(CppEnum *p)=0
virtual bool visit(CppHashWarning *p)=0
virtual bool visit(CppSwitchBlock *p)=0
virtual bool visit(CppMacroCall *p)=0
virtual bool visit(CppPragma *p)=0
virtual bool visit(CppTypeConverter *p)=0
virtual bool visit(CppUnRecogPrePro *p)=0
virtual bool visit(CppCompound *p)=0
virtual bool visit(CppTypedefList *p)=0
virtual bool visit(CppDocComment *p)=0
virtual bool visit(CppVarType *p)=0
The visitor pattern's visit methods for the given types.
virtual bool visit(CppRangeForBlock *p)=0
virtual bool visit(CppFunction *p)=0
virtual bool visit(CppFwdClsDecl *p)=0
virtual bool visit(CppDefine *p)=0
virtual bool visit(CppTypedefName *p)=0
virtual bool visit(CppCommonBlock< CppObjType::kIfBlock > *p)=0
virtual bool visit(CppTryBlock *p)=0
virtual bool visit(CppLabel *p)=0
virtual bool visit(CppHashIf *p)=0
virtual bool visit(CppFunctionPointer *p)=0
virtual bool visit(CppUndef *p)=0
virtual bool visit(CppCommonBlock< CppObjType::kWhileBlock > *p)=0
virtual bool visit(CppVarList *p)=0
virtual bool visit(CppDestructor *p)=0
virtual bool visit(CppNamespaceAlias *p)=0
A stream of text that represents some content in a C++ program.
Definition: cppast.h:167
Some blocks have common structure like if, while, and do-while.
Definition: cppast.h:1923
All classes, structs, unions, and namespaces can be classified as a Compound object.
Definition: cppast.h:927
An expression in a C/C++ program.
Definition: cppast.h:1750
Function pointer type definition using typedef, e.g.
Definition: cppast.h:1390
Represents all variants of #if preprocessors.
Definition: cppast.h:276
Any other C/C++ preprocessor for which there is no class defined.
Definition: cppast.h:371
List of variables declared in a line without repeating its type, e.g.
Definition: cppast.h:699
Class to represent C++ variable definition.
Definition: cppast.h:565