sammine-lang
Loading...
Searching...
No Matches
sammine_lang::AST::ScopedASTVisitor Class Referenceabstract
Inheritance diagram for sammine_lang::AST::ScopedASTVisitor:
Collaboration diagram for sammine_lang::AST::ScopedASTVisitor:

Public Member Functions

virtual void enter_new_scope ()=0
 
virtual void exit_new_scope ()=0
 
virtual void visit (FuncDefAST *ast)
 
- Public Member Functions inherited from sammine_lang::AST::ASTVisitor
virtual void abort (const std::string &msg="<NO MESSAGE>") override final
 
virtual void visit (ProgramAST *ast)
 
virtual void preorder_walk (ProgramAST *ast)=0
 
virtual void postorder_walk (ProgramAST *ast)=0
 
virtual void visit (VarDefAST *ast)
 
virtual void preorder_walk (VarDefAST *ast)=0
 
virtual void postorder_walk (VarDefAST *ast)=0
 
virtual void visit (ExternAST *ast)
 
virtual void preorder_walk (ExternAST *ast)=0
 
virtual void postorder_walk (ExternAST *ast)=0
 
virtual void preorder_walk (FuncDefAST *ast)=0
 
virtual void postorder_walk (FuncDefAST *ast)=0
 
virtual void visit (RecordDefAST *ast)
 
virtual void preorder_walk (RecordDefAST *ast)=0
 
virtual void postorder_walk (RecordDefAST *ast)=0
 
virtual void visit (PrototypeAST *ast)
 
virtual void preorder_walk (PrototypeAST *ast)=0
 
virtual void postorder_walk (PrototypeAST *ast)=0
 
virtual void visit (CallExprAST *ast)
 
virtual void preorder_walk (CallExprAST *ast)=0
 
virtual void postorder_walk (CallExprAST *ast)=0
 
virtual void visit (ReturnExprAST *ast)
 
virtual void preorder_walk (ReturnExprAST *ast)=0
 
virtual void postorder_walk (ReturnExprAST *ast)=0
 
virtual void visit (BinaryExprAST *ast)
 
virtual void preorder_walk (BinaryExprAST *ast)=0
 
virtual void postorder_walk (BinaryExprAST *ast)=0
 
virtual void visit (NumberExprAST *ast)
 
virtual void preorder_walk (NumberExprAST *ast)=0
 
virtual void postorder_walk (NumberExprAST *ast)=0
 
virtual void visit (StringExprAST *ast)
 
virtual void preorder_walk (StringExprAST *ast)=0
 
virtual void postorder_walk (StringExprAST *ast)=0
 
virtual void visit (BoolExprAST *ast)
 
virtual void preorder_walk (BoolExprAST *ast)=0
 
virtual void postorder_walk (BoolExprAST *ast)=0
 
virtual void visit (UnitExprAST *ast)
 
virtual void preorder_walk (UnitExprAST *ast)=0
 
virtual void postorder_walk (UnitExprAST *ast)=0
 
virtual void visit (VariableExprAST *ast)
 
virtual void preorder_walk (VariableExprAST *ast)=0
 
virtual void postorder_walk (VariableExprAST *ast)=0
 
virtual void visit (BlockAST *ast)
 
virtual void preorder_walk (BlockAST *ast)=0
 
virtual void postorder_walk (BlockAST *ast)=0
 
virtual void visit (IfExprAST *ast)
 
virtual void preorder_walk (IfExprAST *ast)=0
 
virtual void postorder_walk (IfExprAST *ast)=0
 
virtual void visit (TypedVarAST *ast)
 
virtual void preorder_walk (TypedVarAST *ast)=0
 
virtual void postorder_walk (TypedVarAST *ast)=0
 
- Public Member Functions inherited from sammine_util::Reportee
iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 
const_iterator cbegin () const
 
const_iterator cend () const
 
template<explicitly_bool_like T>
void abort_on (const T &condition, const std::string &message="<NO MESSAGE>")
 
template<explicitly_bool_like T>
void abort_if_not (const T &condition, const std::string &message="<NO MESSAGE>")
 
void add_error (Location loc, std::string msg)
 
void add_warn (Location loc, std::string msg)
 
void add_diagnostics (Location loc, std::string msg)
 
virtual bool has_errors () const
 
bool has_warn () const
 
bool has_message () const
 
bool has_diagnostics () const
 
int64_t get_error_count () const
 
int64_t get_warn_count () const
 
int64_t get_diagnostic_count () const
 

Additional Inherited Members

- Public Types inherited from sammine_util::Reportee
enum  ReportKind { error , warn , diag }
 
using Report = std::tuple<Location, std::string, ReportKind>
 
using iterator = std::vector<Report>::iterator
 
using const_iterator = std::vector<Report>::const_iterator
 
- Protected Attributes inherited from sammine_util::Reportee
std::vector< Report > reports
 
int64_t error_count = 0
 
int64_t warn_count = 0
 
int64_t diag_count = 0
 

Member Function Documentation

◆ visit()

void sammine_lang::AST::ScopedASTVisitor::visit ( FuncDefAST * ast)
virtual

Only visiting the FuncDefAST requires the use of scoping for now.

In the future we might have to support BlockAST

Reimplemented from sammine_lang::AST::ASTVisitor.

Reimplemented in sammine_lang::AST::AstPrinterVisitor, and sammine_lang::AST::CgVisitor.


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