1 // Copyright (C) 2009 Free Software Foundation, Inc.
2 // Contributed by Jan Sjodin <jan.sjodin@amd.com>.
4 // This file is part of the Polyhedral Compilation Package Library (libpcp).
6 // Libpcp is free software; you can redistribute it and/or modify it
7 // under the terms of the GNU Lesser General Public License as published by
8 // the Free Software Foundation; either version 2.1 of the License, or
9 // (at your option) any later version.
11 // Libpcp is distributed in the hope that it will be useful, but WITHOUT ANY
12 // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13 // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
16 // You should have received a copy of the GNU Lesser General Public License
17 // along with libpcp; see the file COPYING.LIB. If not, write to the
18 // Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19 // MA 02110-1301, USA.
21 // As a special exception, if you link this library with other files, some
22 // of which are compiled with GCC, to produce an executable, this library
23 // does not by itself cause the resulting executable to be covered by the
24 // GNU General Public License. This exception does not however invalidate
25 // any other reasons why the executable file might be covered by the GNU
26 // General Public License.
28 #ifndef _PCP_FULL_VISITOR_H_
29 #define _PCP_FULL_VISITOR_H_
32 #include "pcp_visitor.h"
34 class PcpFullVisitor
: public PcpVisitor
39 virtual void visit(PcpObject
* object
);
40 virtual void visit(PcpArrayType
* arrayType
);
41 virtual void visit(PcpArith
* arith
);
42 virtual void visit(PcpConstant
* constant
);
43 virtual void visit(PcpIv
* iv
);
44 virtual void visit(PcpParameter
* parameter
);
45 virtual void visit(PcpVariable
* variable
);
46 virtual void visit(PcpArrayAccess
* arrayAccess
);
47 virtual void visit(PcpStmt
* stmt
);
48 virtual void visit(PcpCopy
* copy
);
49 virtual void visit(PcpUserStmt
* userStmt
);
50 virtual void visit(PcpSequence
* sequence
);
51 virtual void visit(PcpGuard
* guard
);
52 virtual void visit(PcpLoop
* loop
);
53 virtual void visit(PcpScop
* scop
);
54 virtual void visit(PcpExpr
* expr
);
55 virtual void visit(PcpBoolExpr
* boolExpr
);
56 virtual void visit(PcpCompare
* compare
);
57 virtual void visit(PcpBoolArith
* boolArith
);
60 virtual void visit(PcpAnnotSet
* annot
);
62 virtual void visit(PcpAnnot
* annot
);
63 virtual void visit(PcpAnnotInt
* annotInt
);
64 virtual void visit(PcpAnnotTerm
* annotTerm
);
65 virtual void visit(PcpAnnotString
* annotString
);
66 virtual void visit(PcpAnnotObject
* annotObject
);
69 // Extended components
72 #endif // _PCP_VISITOR_H_