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 (StructDefAST *ast)
virtual void preorder_walk (StructDefAST *ast)=0
virtual void postorder_walk (StructDefAST *ast)=0
virtual void visit (EnumDefAST *ast)
virtual void preorder_walk (EnumDefAST *ast)=0
virtual void postorder_walk (EnumDefAST *ast)=0
virtual void visit (TypeAliasDefAST *ast)
virtual void preorder_walk (TypeAliasDefAST *ast)=0
virtual void postorder_walk (TypeAliasDefAST *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 (CharExprAST *ast)
virtual void preorder_walk (CharExprAST *ast)=0
virtual void postorder_walk (CharExprAST *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
virtual void visit (DerefExprAST *ast)
virtual void preorder_walk (DerefExprAST *ast)=0
virtual void postorder_walk (DerefExprAST *ast)=0
virtual void visit (AddrOfExprAST *ast)
virtual void preorder_walk (AddrOfExprAST *ast)=0
virtual void postorder_walk (AddrOfExprAST *ast)=0
virtual void visit (AllocExprAST *ast)
virtual void preorder_walk (AllocExprAST *ast)=0
virtual void postorder_walk (AllocExprAST *ast)=0
virtual void visit (FreeExprAST *ast)
virtual void preorder_walk (FreeExprAST *ast)=0
virtual void postorder_walk (FreeExprAST *ast)=0
virtual void visit (ArrayLiteralExprAST *ast)
virtual void preorder_walk (ArrayLiteralExprAST *ast)=0
virtual void postorder_walk (ArrayLiteralExprAST *ast)=0
virtual void visit (IndexExprAST *ast)
virtual void preorder_walk (IndexExprAST *ast)=0
virtual void postorder_walk (IndexExprAST *ast)=0
virtual void visit (LenExprAST *ast)
virtual void preorder_walk (LenExprAST *ast)=0
virtual void postorder_walk (LenExprAST *ast)=0
virtual void visit (UnaryNegExprAST *ast)
virtual void preorder_walk (UnaryNegExprAST *ast)=0
virtual void postorder_walk (UnaryNegExprAST *ast)=0
virtual void visit (StructLiteralExprAST *ast)
virtual void preorder_walk (StructLiteralExprAST *ast)=0
virtual void postorder_walk (StructLiteralExprAST *ast)=0
virtual void visit (FieldAccessExprAST *ast)
virtual void preorder_walk (FieldAccessExprAST *ast)=0
virtual void postorder_walk (FieldAccessExprAST *ast)=0
virtual void visit (CaseExprAST *ast)
virtual void preorder_walk (CaseExprAST *ast)=0
virtual void postorder_walk (CaseExprAST *ast)=0
virtual void visit (WhileExprAST *ast)
virtual void preorder_walk (WhileExprAST *ast)=0
virtual void postorder_walk (WhileExprAST *ast)=0
virtual void visit (TupleLiteralExprAST *ast)
virtual void preorder_walk (TupleLiteralExprAST *ast)=0
virtual void postorder_walk (TupleLiteralExprAST *ast)=0
virtual void visit (TypeClassDeclAST *ast)
virtual void preorder_walk (TypeClassDeclAST *ast)=0
virtual void postorder_walk (TypeClassDeclAST *ast)=0
virtual void visit (TypeClassInstanceAST *ast)
virtual void preorder_walk (TypeClassInstanceAST *ast)=0
virtual void postorder_walk (TypeClassInstanceAST *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, std::source_location src=std::source_location::current())
void add_error (Location loc, std::vector< std::string > msgs, std::source_location src=std::source_location::current())
void add_warn (Location loc, std::string msg, std::source_location src=std::source_location::current())
void add_diagnostics (Location loc, std::string msg, std::source_location src=std::source_location::current())
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
using iterator = std::vector<Report>::iterator
using const_iterator = std::vector<Report>::const_iterator
Protected Attributes inherited from sammine_lang::AST::ASTVisitor
ProgramASTtop_level_ast = nullptr
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

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