sammine-lang
|
Public Member Functions | |
virtual void | enter_new_scope ()=0 |
virtual void | exit_new_scope ()=0 |
virtual void | visit (FuncDefAST *ast) |
![]() | |
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 |
![]() | |
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 | |
![]() | |
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 |
![]() | |
std::vector< Report > | reports |
int64_t | error_count = 0 |
int64_t | warn_count = 0 |
int64_t | diag_count = 0 |
|
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.