Changes in src/AST/Stmt.hpp [99da267:e67991f]
- File:
-
- 1 edited
-
src/AST/Stmt.hpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/AST/Stmt.hpp
r99da267 re67991f 27 27 28 28 // Must be included in *all* AST classes; should be #undef'd at the end of the file 29 #define MUTATE_FRIEND \ 30 template<typename node_t> friend node_t * mutate(const node_t * node); \ 31 template<typename node_t> friend node_t * shallowCopy(const node_t * node); 29 #define MUTATE_FRIEND template<typename node_t> friend node_t * mutate(const node_t * node); 32 30 33 31 namespace ast { … … 382 380 }; 383 381 384 /// With statement `with (...) ...`385 class WithStmt final : public Stmt {386 public:387 std::vector<ptr<Expr>> exprs;388 ptr<Stmt> stmt;389 390 WithStmt( const CodeLocation & loc, std::vector<ptr<Expr>> && exprs, const Stmt * stmt,391 std::vector<Label> && labels = {} )392 : Stmt(loc, std::move(labels)), exprs(std::move(exprs)), stmt(stmt) {}393 394 const Stmt * accept( Visitor & v ) const override { return v.visit( this ); }395 private:396 WithStmt * clone() const override { return new WithStmt{ *this }; }397 MUTATE_FRIEND398 };399 400 382 /// Any declaration in a (compound) statement. 401 383 class DeclStmt final : public Stmt {
Note:
See TracChangeset
for help on using the changeset viewer.