//===--- StmtVisitor.h - Visitor for Stmt subclasses ------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file was developed by Chris Lattner and is distributed under // the University of Illinois Open Source License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file defines the StmtVisitor interface. // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_AST_STMTVISITOR_H #define LLVM_CLANG_AST_STMTVISITOR_H namespace clang { class Stmt; // Add prototypes for all AST node classes. #define STMT(N, CLASS, PARENT) \ class CLASS; #include "clang/AST/StmtNodes.def" /// StmtVisitor - This class implements a simple visitor for Stmt subclasses. /// Since Expr derives from Stmt, this also includes support for visiting Exprs. class StmtVisitor { public: virtual ~StmtVisitor(); virtual void VisitStmt(Stmt *Node) {} // Implement all the methods with the StmtNodes.def file. #define STMT(N, CLASS, PARENT) \ virtual void Visit##CLASS(CLASS *Node); #include "clang/AST/StmtNodes.def" }; } #endif