File indexing completed on 2024-05-19 04:41:36

0001 /*
0002     SPDX-FileCopyrightText: 2006 Andreas Pakulat <apaku@gmx.de>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #ifndef QMAKEDEBUGVISITOR_H
0008 #define QMAKEDEBUGVISITOR_H
0009 
0010 #include "qmakedefaultvisitor.h"
0011 #include "qmakeparser.h"
0012 
0013 #include <QTextStream>
0014 
0015 namespace QMake
0016 {
0017 
0018 class parser;
0019 
0020 class DebugVisitor:  public DefaultVisitor
0021 {
0022 
0023 public:
0024     explicit DebugVisitor(QMake::Parser* parser);
0025     void visitArgumentList( ArgumentListAst *node ) override;
0026     void visitFunctionArguments( FunctionArgumentsAst *node ) override;
0027     void visitOrOperator( OrOperatorAst *node ) override;
0028     void visitItem( ItemAst *node ) override;
0029     void visitScope( ScopeAst *node ) override;
0030     void visitIfElse(IfElseAst* node) override;
0031     void visitOp( OpAst *node ) override;
0032     void visitProject( ProjectAst *node ) override;
0033     void visitScopeBody( ScopeBodyAst *node ) override;
0034     void visitStatement( StatementAst *node ) override;
0035     void visitValue( ValueAst *node ) override;
0036     void visitValueList( ValueListAst *node ) override;
0037     void visitVariableAssignment( VariableAssignmentAst *node ) override;
0038     QString getTokenInfo(qint64 idx);
0039     QString getIndent();
0040 private:
0041     QTextStream m_out;
0042     QMake::Parser* m_parser;
0043     int indent;
0044 };
0045 
0046 } // end of namespace QMake
0047 
0048 #endif
0049