diff options
author | Dmitrii Akshintsev <dmitrii.akshintsev@qt.io> | 2024-01-31 16:16:20 +0100 |
---|---|---|
committer | Dmitrii Akshintsev <dmitrii.akshintsev@qt.io> | 2024-02-14 00:01:54 +0100 |
commit | 6e0180073f16ca3739aa72328f5f3d58e32b6d56 (patch) | |
tree | bbf7a02e52876c72377a4a8020ab2542c038a6c7 /src/qml/parser | |
parent | 03ac6a0990afeb0ea3294e22d6e553a4370f32eb (diff) |
QMLJSASTVisitor. Add JSVisitor
This proxy visitor is helpful to be used in the cases where traversing
only JS AST Nodes is needed, for example when formatting plain JS files
This also allows to get rid of some of the same trivial implementations.
Task-number: QTBUG-117849
Change-Id: If7d8086032f286b0cc7559df7f0f0ab9869bd12e
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Semih Yavuz <semih.yavuz@qt.io>
Diffstat (limited to 'src/qml/parser')
-rw-r--r-- | src/qml/parser/qqmljsastvisitor_p.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/qml/parser/qqmljsastvisitor_p.h b/src/qml/parser/qqmljsastvisitor_p.h index f8ff3add79..540d21d725 100644 --- a/src/qml/parser/qqmljsastvisitor_p.h +++ b/src/qml/parser/qqmljsastvisitor_p.h @@ -210,6 +210,30 @@ public: #undef X }; +class QML_PARSER_EXPORT JSVisitor : public BaseVisitor +{ +public: + JSVisitor() = default; + + bool preVisit(Node *) override { return true; } + void postVisit(Node *) override { } + +#define X(name) \ + bool visit(name *) override { return true; } \ + void endVisit(name *) override { } + QQmlJSASTQQmlJSClassListToVisit +#undef X + +#define X(name) \ + bool visit(name *) override \ + { \ + Q_ASSERT(false); \ + return false; \ + } \ + void endVisit(name *) override { } + QQmlJSASTUiClassListToVisit +#undef X +}; // namespace AST } } // namespace AST QT_END_NAMESPACE |