OpenClonk
aul::DefaultRecursiveVisitor Class Reference

#include <C4AulAST.h>

Inheritance diagram for aul::DefaultRecursiveVisitor:
[legend]
Collaboration diagram for aul::DefaultRecursiveVisitor:
[legend]

Public Member Functions

 ~DefaultRecursiveVisitor () override=default
 
void visit (const ::aul::ast::ArrayLit *n) override
 
void visit (const ::aul::ast::ProplistLit *n) override
 
void visit (const ::aul::ast::UnOpExpr *n) override
 
void visit (const ::aul::ast::BinOpExpr *n) override
 
void visit (const ::aul::ast::AssignmentExpr *n) override
 
void visit (const ::aul::ast::SubscriptExpr *n) override
 
void visit (const ::aul::ast::SliceExpr *n) override
 
void visit (const ::aul::ast::CallExpr *n) override
 
void visit (const ::aul::ast::ParExpr *n) override
 
void visit (const ::aul::ast::Block *n) override
 
void visit (const ::aul::ast::Return *n) override
 
void visit (const ::aul::ast::ForLoop *n) override
 
void visit (const ::aul::ast::RangeLoop *n) override
 
void visit (const ::aul::ast::DoLoop *n) override
 
void visit (const ::aul::ast::WhileLoop *n) override
 
void visit (const ::aul::ast::If *n) override
 
void visit (const ::aul::ast::VarDecl *n) override
 
void visit (const ::aul::ast::FunctionDecl *n) override
 
void visit (const ::aul::ast::FunctionExpr *n) override
 
void visit (const ::aul::ast::Script *n) override
 
virtual void visit (const ::aul::ast::Noop *)
 
virtual void visit (const ::aul::ast::StringLit *)
 
virtual void visit (const ::aul::ast::IntLit *)
 
virtual void visit (const ::aul::ast::BoolLit *)
 
virtual void visit (const ::aul::ast::ArrayLit *)
 
virtual void visit (const ::aul::ast::ProplistLit *)
 
virtual void visit (const ::aul::ast::NilLit *)
 
virtual void visit (const ::aul::ast::ThisLit *)
 
virtual void visit (const ::aul::ast::VarExpr *n)
 
virtual void visit (const ::aul::ast::UnOpExpr *)
 
virtual void visit (const ::aul::ast::BinOpExpr *)
 
virtual void visit (const ::aul::ast::AssignmentExpr *)
 
virtual void visit (const ::aul::ast::SubscriptExpr *)
 
virtual void visit (const ::aul::ast::SliceExpr *)
 
virtual void visit (const ::aul::ast::CallExpr *)
 
virtual void visit (const ::aul::ast::ParExpr *)
 
virtual void visit (const ::aul::ast::Block *)
 
virtual void visit (const ::aul::ast::Return *)
 
virtual void visit (const ::aul::ast::ForLoop *)
 
virtual void visit (const ::aul::ast::RangeLoop *)
 
virtual void visit (const ::aul::ast::DoLoop *)
 
virtual void visit (const ::aul::ast::WhileLoop *)
 
virtual void visit (const ::aul::ast::Break *)
 
virtual void visit (const ::aul::ast::Continue *)
 
virtual void visit (const ::aul::ast::If *)
 
virtual void visit (const ::aul::ast::VarDecl *)
 
virtual void visit (const ::aul::ast::FunctionDecl *)
 
virtual void visit (const ::aul::ast::FunctionExpr *)
 
virtual void visit (const ::aul::ast::IncludePragma *)
 
virtual void visit (const ::aul::ast::AppendtoPragma *)
 
virtual void visit (const ::aul::ast::Script *)
 
template<class T >
void visit (const T *)=delete
 
virtual void visit (const ::aul::ast::Noop *)
 
virtual void visit (const ::aul::ast::StringLit *)
 
virtual void visit (const ::aul::ast::IntLit *)
 
virtual void visit (const ::aul::ast::BoolLit *)
 
virtual void visit (const ::aul::ast::NilLit *)
 
virtual void visit (const ::aul::ast::ThisLit *)
 
virtual void visit (const ::aul::ast::VarExpr *n)
 
virtual void visit (const ::aul::ast::Break *)
 
virtual void visit (const ::aul::ast::Continue *)
 
virtual void visit (const ::aul::ast::IncludePragma *)
 
virtual void visit (const ::aul::ast::AppendtoPragma *)
 
template<class T >
void visit (const T *)=delete
 

Detailed Description

Definition at line 434 of file C4AulAST.h.

Constructor & Destructor Documentation

◆ ~DefaultRecursiveVisitor()

aul::DefaultRecursiveVisitor::~DefaultRecursiveVisitor ( )
overridedefault

Member Function Documentation

◆ visit() [1/64]

virtual void aul::AstVisitor::visit ( const ::aul::ast::AppendtoPragma )
inlinevirtualinherited

Reimplemented in C4AulCompiler::PreparseAstVisitor.

Definition at line 92 of file C4AulAST.h.

92 {}

◆ visit() [2/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 92 of file C4AulAST.h.

92 {}

◆ visit() [3/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 67 of file C4AulAST.h.

67 {}

◆ visit() [4/64]

void aul::DefaultRecursiveVisitor::visit ( const ::aul::ast::ArrayLit n)
inlineoverridevirtual

Reimplemented from aul::AstVisitor.

Reimplemented in C4AulCompiler::CodegenAstVisitor.

Definition at line 441 of file C4AulAST.h.

442  {
443  for (const auto &c : n->values)
444  c->accept(this);
445  }
std::vector< ExprPtr > values
Definition: C4AulAST.h:180

◆ visit() [5/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 74 of file C4AulAST.h.

74 {}

◆ visit() [6/64]

void aul::DefaultRecursiveVisitor::visit ( const ::aul::ast::AssignmentExpr n)
inlineoverridevirtual

Reimplemented from aul::AstVisitor.

Reimplemented in C4AulCompiler::CodegenAstVisitor.

Definition at line 460 of file C4AulAST.h.

461  {
462  n->lhs->accept(this);
463  n->rhs->accept(this);
464  }

◆ visit() [7/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 73 of file C4AulAST.h.

73 {}

◆ visit() [8/64]

void aul::DefaultRecursiveVisitor::visit ( const ::aul::ast::BinOpExpr n)
inlineoverridevirtual

Reimplemented from aul::AstVisitor.

Reimplemented in C4AulCompiler::CodegenAstVisitor.

Definition at line 455 of file C4AulAST.h.

456  {
457  n->lhs->accept(this);
458  n->rhs->accept(this);
459  }

◆ visit() [9/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 79 of file C4AulAST.h.

79 {}

◆ visit() [10/64]

void aul::DefaultRecursiveVisitor::visit ( const ::aul::ast::Block n)
inlineoverridevirtual

Reimplemented from aul::AstVisitor.

Reimplemented in C4AulCompiler::CodegenAstVisitor.

Definition at line 487 of file C4AulAST.h.

488  {
489  for (const auto &s : n->children)
490  s->accept(this);
491  }
#define s
std::vector< StmtPtr > children
Definition: C4AulAST.h:273

References s.

◆ visit() [11/64]

virtual void aul::AstVisitor::visit ( const ::aul::ast::BoolLit )
inlinevirtualinherited

Reimplemented in C4AulCompiler::ConstexprEvaluator, and C4AulCompiler::CodegenAstVisitor.

Definition at line 66 of file C4AulAST.h.

66 {}

◆ visit() [12/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 66 of file C4AulAST.h.

66 {}

◆ visit() [13/64]

virtual void aul::AstVisitor::visit ( const ::aul::ast::Break )
inlinevirtualinherited

Reimplemented in C4AulCompiler::CodegenAstVisitor.

Definition at line 85 of file C4AulAST.h.

85 {}

◆ visit() [14/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 85 of file C4AulAST.h.

85 {}

◆ visit() [15/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 77 of file C4AulAST.h.

77 {}

◆ visit() [16/64]

void aul::DefaultRecursiveVisitor::visit ( const ::aul::ast::CallExpr n)
inlineoverridevirtual

Reimplemented from aul::AstVisitor.

Reimplemented in C4AulCompiler::CodegenAstVisitor, and C4AulCompiler::PreparseAstVisitor.

Definition at line 476 of file C4AulAST.h.

477  {
478  if (n->context)
479  n->context->accept(this);
480  for (const auto &a : n->args)
481  a->accept(this);
482  }
#define a
std::vector< ExprPtr > args
Definition: C4AulAST.h:257

References a.

◆ visit() [17/64]

virtual void aul::AstVisitor::visit ( const ::aul::ast::Continue )
inlinevirtualinherited

Reimplemented in C4AulCompiler::CodegenAstVisitor.

Definition at line 86 of file C4AulAST.h.

86 {}

◆ visit() [18/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 86 of file C4AulAST.h.

86 {}

◆ visit() [19/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 83 of file C4AulAST.h.

83 {}

◆ visit() [20/64]

void aul::DefaultRecursiveVisitor::visit ( const ::aul::ast::DoLoop n)
inlineoverridevirtual

Reimplemented from aul::AstVisitor.

Reimplemented in C4AulCompiler::CodegenAstVisitor.

Definition at line 511 of file C4AulAST.h.

512  {
513  n->body->accept(this);
514  n->cond->accept(this);
515  }
ExprPtr cond
Definition: C4AulAST.h:290
StmtPtr body
Definition: C4AulAST.h:291

◆ visit() [21/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 81 of file C4AulAST.h.

81 {}

◆ visit() [22/64]

void aul::DefaultRecursiveVisitor::visit ( const ::aul::ast::ForLoop n)
inlineoverridevirtual

Reimplemented from aul::AstVisitor.

Reimplemented in C4AulCompiler::CodegenAstVisitor.

Definition at line 496 of file C4AulAST.h.

497  {
498  if (n->init)
499  n->init->accept(this);
500  if (n->cond)
501  n->cond->accept(this);
502  if (n->incr)
503  n->incr->accept(this);
504  n->body->accept(this);
505  }

◆ visit() [23/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 89 of file C4AulAST.h.

89 {}

◆ visit() [24/64]

void aul::DefaultRecursiveVisitor::visit ( const ::aul::ast::FunctionDecl n)
inlineoverridevirtual

Reimplemented from aul::AstVisitor.

Reimplemented in C4AulCompiler::CodegenAstVisitor, and C4AulCompiler::PreparseAstVisitor.

Definition at line 534 of file C4AulAST.h.

535  {
536  n->body->accept(this);
537  }
std::unique_ptr< Block > body
Definition: C4AulAST.h:379

◆ visit() [25/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 90 of file C4AulAST.h.

90 {}

◆ visit() [26/64]

void aul::DefaultRecursiveVisitor::visit ( const ::aul::ast::FunctionExpr n)
inlineoverridevirtual

Reimplemented from aul::AstVisitor.

Reimplemented in C4AulCompiler::CodegenAstVisitor.

Definition at line 538 of file C4AulAST.h.

539  {
540  n->body->accept(this);
541  }

◆ visit() [27/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 87 of file C4AulAST.h.

87 {}

◆ visit() [28/64]

void aul::DefaultRecursiveVisitor::visit ( const ::aul::ast::If n)
inlineoverridevirtual

Reimplemented from aul::AstVisitor.

Reimplemented in C4AulCompiler::CodegenAstVisitor.

Definition at line 521 of file C4AulAST.h.

522  {
523  n->cond->accept(this);
524  n->iftrue->accept(this);
525  if (n->iffalse)
526  n->iffalse->accept(this);
527  }
ExprPtr cond
Definition: C4AulAST.h:338
StmtPtr iftrue
Definition: C4AulAST.h:339
StmtPtr iffalse
Definition: C4AulAST.h:339

◆ visit() [29/64]

virtual void aul::AstVisitor::visit ( const ::aul::ast::IncludePragma )
inlinevirtualinherited

Reimplemented in C4AulCompiler::PreparseAstVisitor.

Definition at line 91 of file C4AulAST.h.

91 {}

◆ visit() [30/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 91 of file C4AulAST.h.

91 {}

◆ visit() [31/64]

virtual void aul::AstVisitor::visit ( const ::aul::ast::IntLit )
inlinevirtualinherited

Reimplemented in C4AulCompiler::ConstexprEvaluator, and C4AulCompiler::CodegenAstVisitor.

Definition at line 65 of file C4AulAST.h.

65 {}

◆ visit() [32/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 65 of file C4AulAST.h.

65 {}

◆ visit() [33/64]

virtual void aul::AstVisitor::visit ( const ::aul::ast::NilLit )
inlinevirtualinherited

Reimplemented in C4AulCompiler::CodegenAstVisitor, and C4AulCompiler::ConstexprEvaluator.

Definition at line 69 of file C4AulAST.h.

69 {}

◆ visit() [34/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 69 of file C4AulAST.h.

69 {}

◆ visit() [35/64]

virtual void aul::AstVisitor::visit ( const ::aul::ast::Noop )
inlinevirtualinherited

Reimplemented in C4AulCompiler::CodegenAstVisitor.

Definition at line 63 of file C4AulAST.h.

63 {}

◆ visit() [36/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 63 of file C4AulAST.h.

63 {}

◆ visit() [37/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 78 of file C4AulAST.h.

78 {}

◆ visit() [38/64]

void aul::DefaultRecursiveVisitor::visit ( const ::aul::ast::ParExpr n)
inlineoverridevirtual

Reimplemented from aul::AstVisitor.

Reimplemented in C4AulCompiler::CodegenAstVisitor, and C4AulCompiler::PreparseAstVisitor.

Definition at line 483 of file C4AulAST.h.

484  {
485  n->arg->accept(this);
486  }

◆ visit() [39/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 68 of file C4AulAST.h.

68 {}

◆ visit() [40/64]

void aul::DefaultRecursiveVisitor::visit ( const ::aul::ast::ProplistLit n)
inlineoverridevirtual

Reimplemented from aul::AstVisitor.

Reimplemented in C4AulCompiler::CodegenAstVisitor.

Definition at line 446 of file C4AulAST.h.

447  {
448  for (const auto &c : n->values)
449  c.second->accept(this);
450  }
std::vector< std::pair< std::string, ExprPtr > > values
Definition: C4AulAST.h:187

◆ visit() [41/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 82 of file C4AulAST.h.

82 {}

◆ visit() [42/64]

void aul::DefaultRecursiveVisitor::visit ( const ::aul::ast::RangeLoop n)
inlineoverridevirtual

Reimplemented from aul::AstVisitor.

Reimplemented in C4AulCompiler::CodegenAstVisitor, and C4AulCompiler::PreparseAstVisitor.

Definition at line 506 of file C4AulAST.h.

507  {
508  n->cond->accept(this);
509  n->body->accept(this);
510  }

◆ visit() [43/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 80 of file C4AulAST.h.

80 {}

◆ visit() [44/64]

void aul::DefaultRecursiveVisitor::visit ( const ::aul::ast::Return n)
inlineoverridevirtual

Reimplemented from aul::AstVisitor.

Reimplemented in C4AulCompiler::CodegenAstVisitor.

Definition at line 492 of file C4AulAST.h.

493  {
494  n->value->accept(this);
495  }
ExprPtr value
Definition: C4AulAST.h:284

◆ visit() [45/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 93 of file C4AulAST.h.

93 {}

◆ visit() [46/64]

void aul::DefaultRecursiveVisitor::visit ( const ::aul::ast::Script n)
inlineoverridevirtual

Reimplemented from aul::AstVisitor.

Reimplemented in C4AulCompiler::ConstantResolver, C4AulCompiler::CodegenAstVisitor, and C4AulCompiler::PreparseAstVisitor.

Definition at line 542 of file C4AulAST.h.

543  {
544  for (const auto &d : n->declarations)
545  d->accept(this);
546  }
std::vector< DeclPtr > declarations
Definition: C4AulAST.h:425

◆ visit() [47/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 76 of file C4AulAST.h.

76 {}

◆ visit() [48/64]

void aul::DefaultRecursiveVisitor::visit ( const ::aul::ast::SliceExpr n)
inlineoverridevirtual

Reimplemented from aul::AstVisitor.

Reimplemented in C4AulCompiler::CodegenAstVisitor.

Definition at line 470 of file C4AulAST.h.

471  {
472  n->object->accept(this);
473  n->start->accept(this);
474  n->end->accept(this);
475  }

◆ visit() [49/64]

virtual void aul::AstVisitor::visit ( const ::aul::ast::StringLit )
inlinevirtualinherited

Reimplemented in C4AulCompiler::ConstexprEvaluator, and C4AulCompiler::CodegenAstVisitor.

Definition at line 64 of file C4AulAST.h.

64 {}

◆ visit() [50/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 64 of file C4AulAST.h.

64 {}

◆ visit() [51/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 75 of file C4AulAST.h.

75 {}

◆ visit() [52/64]

void aul::DefaultRecursiveVisitor::visit ( const ::aul::ast::SubscriptExpr n)
inlineoverridevirtual

Reimplemented from aul::AstVisitor.

Reimplemented in C4AulCompiler::CodegenAstVisitor.

Definition at line 465 of file C4AulAST.h.

466  {
467  n->object->accept(this);
468  n->index->accept(this);
469  }

◆ visit() [53/64]

virtual void aul::AstVisitor::visit ( const ::aul::ast::ThisLit )
inlinevirtualinherited

Reimplemented in C4AulCompiler::ConstexprEvaluator, and C4AulCompiler::CodegenAstVisitor.

Definition at line 70 of file C4AulAST.h.

70 {}

◆ visit() [54/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 70 of file C4AulAST.h.

70 {}

◆ visit() [55/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 72 of file C4AulAST.h.

72 {}

◆ visit() [56/64]

void aul::DefaultRecursiveVisitor::visit ( const ::aul::ast::UnOpExpr n)
inlineoverridevirtual

Reimplemented from aul::AstVisitor.

Reimplemented in C4AulCompiler::CodegenAstVisitor.

Definition at line 451 of file C4AulAST.h.

452  {
453  n->operand->accept(this);
454  }

◆ visit() [57/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 88 of file C4AulAST.h.

88 {}

◆ visit() [58/64]

void aul::DefaultRecursiveVisitor::visit ( const ::aul::ast::VarDecl n)
inlineoverridevirtual

Reimplemented from aul::AstVisitor.

Reimplemented in C4AulCompiler::ConstantResolver, C4AulCompiler::CodegenAstVisitor, and C4AulCompiler::PreparseAstVisitor.

Definition at line 528 of file C4AulAST.h.

529  {
530  for (const auto &d : n->decls)
531  if (d.init)
532  d.init->accept(this);
533  }
std::vector< Var > decls
Definition: C4AulAST.h:365

◆ visit() [59/64]

virtual void aul::AstVisitor::visit ( const ::aul::ast::VarExpr n)
inlinevirtualinherited

Reimplemented in C4AulCompiler::ConstexprEvaluator, and C4AulCompiler::CodegenAstVisitor.

Definition at line 71 of file C4AulAST.h.

71 {}

◆ visit() [60/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 71 of file C4AulAST.h.

71 {}

◆ visit() [61/64]

virtual void aul::AstVisitor::visit
inline

Definition at line 84 of file C4AulAST.h.

84 {}

◆ visit() [62/64]

void aul::DefaultRecursiveVisitor::visit ( const ::aul::ast::WhileLoop n)
inlineoverridevirtual

Reimplemented from aul::AstVisitor.

Reimplemented in C4AulCompiler::CodegenAstVisitor.

Definition at line 516 of file C4AulAST.h.

517  {
518  n->cond->accept(this);
519  n->body->accept(this);
520  }

◆ visit() [63/64]

template<class T >
void aul::AstVisitor::visit ( const T *  )
deleteinherited

◆ visit() [64/64]

template<class T >
void aul::AstVisitor::visit ( class T  )
delete

The documentation for this class was generated from the following file: