Changeset 24ceace for src/AST/Stmt.hpp
- Timestamp:
- May 2, 2022, 3:19:03 AM (3 years ago)
- Branches:
- ADT, ast-experimental, master, pthread-emulation, qualifiedEnum
- Children:
- 12bb5ab1, 49a1684
- Parents:
- 9e7236f4 (diff), 4b4f95f (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/AST/Stmt.hpp
r9e7236f4 r24ceace 10 10 // Created On : Wed May 8 13:00:00 2019 11 11 // Last Modified By : Andrew Beach 12 // Last Modified On : Mon Mar 28 9:50:00 202213 // Update Count : 3 512 // Last Modified On : Wed Apr 20 14:34:00 2022 13 // Update Count : 36 14 14 // 15 15 … … 378 378 class WaitForStmt final : public Stmt { 379 379 public: 380 struct Target { 381 ptr<Expr> func; 382 std::vector<ptr<Expr>> args; 383 }; 384 385 struct Clause { 386 Target target; 387 ptr<Stmt> stmt; 388 ptr<Expr> cond; 389 }; 390 391 struct Timeout { 392 ptr<Expr> time; 393 ptr<Stmt> stmt; 394 ptr<Expr> cond; 395 }; 396 397 struct OrElse { 398 ptr<Stmt> stmt; 399 ptr<Expr> cond; 400 }; 401 402 std::vector<Clause> clauses; 403 Timeout timeout; 404 OrElse orElse; 380 std::vector<ptr<WaitForClause>> clauses; 381 ptr<Expr> timeout_time; 382 ptr<Stmt> timeout_stmt; 383 ptr<Expr> timeout_cond; 384 ptr<Stmt> else_stmt; 385 ptr<Expr> else_cond; 405 386 406 387 WaitForStmt( const CodeLocation & loc, const std::vector<Label> && labels = {} ) … … 411 392 WaitForStmt * clone() const override { return new WaitForStmt{ *this }; } 412 393 MUTATE_FRIEND 394 }; 395 396 class WaitForClause final : public StmtClause { 397 public: 398 ptr<Expr> target_func; 399 std::vector<ptr<Expr>> target_args; 400 ptr<Stmt> stmt; 401 ptr<Expr> cond; 402 403 WaitForClause( const CodeLocation & loc ) 404 : StmtClause( loc ) {} 405 406 const WaitForClause * accept( Visitor & v ) const override { return v.visit( this ); } 407 private: 408 WaitForClause * clone() const override { return new WaitForClause{ *this }; } 409 MUTATE_FRIEND 413 410 }; 414 411
Note: See TracChangeset
for help on using the changeset viewer.