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

Public Member Functions

 CgVisitor (std::shared_ptr< sammine_lang::LLVMRes > resPtr)
 
void enter_new_scope () override
 
void exit_new_scope () override
 
virtual void visit (FuncDefAST *) override
 
virtual void preorder_walk (ProgramAST *ast) override
 
virtual void preorder_walk (VarDefAST *ast) override
 
virtual void preorder_walk (FuncDefAST *ast) override
 
virtual void preorder_walk (RecordDefAST *ast) override
 
virtual void preorder_walk (ExternAST *ast) override
 
virtual void preorder_walk (PrototypeAST *ast) override
 
virtual void preorder_walk (CallExprAST *ast) override
 
virtual void preorder_walk (ReturnExprAST *ast) override
 
virtual void preorder_walk (BinaryExprAST *ast) override
 
virtual void preorder_walk (NumberExprAST *ast) override
 
virtual void preorder_walk (StringExprAST *ast) override
 
virtual void preorder_walk (BoolExprAST *ast) override
 
virtual void preorder_walk (VariableExprAST *ast) override
 
virtual void preorder_walk (BlockAST *ast) override
 
virtual void preorder_walk (IfExprAST *ast) override
 
virtual void preorder_walk (UnitExprAST *ast) override
 
virtual void preorder_walk (TypedVarAST *ast) override
 
virtual void postorder_walk (ProgramAST *ast) override
 
virtual void postorder_walk (VarDefAST *ast) override
 
virtual void postorder_walk (ExternAST *ast) override
 
virtual void postorder_walk (FuncDefAST *ast) override
 
virtual void postorder_walk (RecordDefAST *ast) override
 
virtual void postorder_walk (PrototypeAST *ast) override
 
virtual void postorder_walk (CallExprAST *ast) override
 
virtual void postorder_walk (ReturnExprAST *ast) override
 
virtual void postorder_walk (BinaryExprAST *ast) override
 
virtual void postorder_walk (NumberExprAST *ast) override
 
virtual void postorder_walk (StringExprAST *ast) override
 
virtual void postorder_walk (BoolExprAST *ast) override
 
virtual void postorder_walk (VariableExprAST *ast) override
 
virtual void postorder_walk (BlockAST *ast) override
 
virtual void postorder_walk (IfExprAST *ast) override
 
virtual void postorder_walk (UnitExprAST *ast) override
 
virtual void postorder_walk (TypedVarAST *ast) override
 
- 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 visit (VarDefAST *ast)
 
virtual void visit (ExternAST *ast)
 
virtual void visit (RecordDefAST *ast)
 
virtual void visit (PrototypeAST *ast)
 
virtual void visit (CallExprAST *ast)
 
virtual void visit (ReturnExprAST *ast)
 
virtual void visit (BinaryExprAST *ast)
 
virtual void visit (NumberExprAST *ast)
 
virtual void visit (StringExprAST *ast)
 
virtual void visit (BoolExprAST *ast)
 
virtual void visit (UnitExprAST *ast)
 
virtual void visit (VariableExprAST *ast)
 
virtual void visit (BlockAST *ast)
 
virtual void visit (IfExprAST *ast)
 
virtual void visit (TypedVarAST *ast)
 
- 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

◆ enter_new_scope()

void sammine_lang::AST::CgVisitor::enter_new_scope ( )
overridevirtual

◆ exit_new_scope()

void sammine_lang::AST::CgVisitor::exit_new_scope ( )
overridevirtual

◆ postorder_walk() [1/17]

void sammine_lang::AST::CgVisitor::postorder_walk ( BinaryExprAST * ast)
overridevirtual

◆ postorder_walk() [2/17]

void sammine_lang::AST::CgVisitor::postorder_walk ( BlockAST * ast)
overridevirtual

◆ postorder_walk() [3/17]

virtual void sammine_lang::AST::CgVisitor::postorder_walk ( BoolExprAST * ast)
inlineoverridevirtual

◆ postorder_walk() [4/17]

virtual void sammine_lang::AST::CgVisitor::postorder_walk ( CallExprAST * ast)
inlineoverridevirtual

◆ postorder_walk() [5/17]

virtual void sammine_lang::AST::CgVisitor::postorder_walk ( ExternAST * ast)
inlineoverridevirtual

◆ postorder_walk() [6/17]

void sammine_lang::AST::CgVisitor::postorder_walk ( FuncDefAST * ast)
overridevirtual

◆ postorder_walk() [7/17]

virtual void sammine_lang::AST::CgVisitor::postorder_walk ( IfExprAST * ast)
inlineoverridevirtual

◆ postorder_walk() [8/17]

virtual void sammine_lang::AST::CgVisitor::postorder_walk ( NumberExprAST * ast)
inlineoverridevirtual

◆ postorder_walk() [9/17]

virtual void sammine_lang::AST::CgVisitor::postorder_walk ( ProgramAST * ast)
inlineoverridevirtual

◆ postorder_walk() [10/17]

virtual void sammine_lang::AST::CgVisitor::postorder_walk ( PrototypeAST * ast)
inlineoverridevirtual

◆ postorder_walk() [11/17]

void sammine_lang::AST::CgVisitor::postorder_walk ( RecordDefAST * ast)
overridevirtual

◆ postorder_walk() [12/17]

void sammine_lang::AST::CgVisitor::postorder_walk ( ReturnExprAST * ast)
overridevirtual

◆ postorder_walk() [13/17]

virtual void sammine_lang::AST::CgVisitor::postorder_walk ( StringExprAST * ast)
inlineoverridevirtual

◆ postorder_walk() [14/17]

virtual void sammine_lang::AST::CgVisitor::postorder_walk ( TypedVarAST * ast)
inlineoverridevirtual

◆ postorder_walk() [15/17]

virtual void sammine_lang::AST::CgVisitor::postorder_walk ( UnitExprAST * ast)
inlineoverridevirtual

◆ postorder_walk() [16/17]

void sammine_lang::AST::CgVisitor::postorder_walk ( VarDefAST * ast)
overridevirtual

◆ postorder_walk() [17/17]

virtual void sammine_lang::AST::CgVisitor::postorder_walk ( VariableExprAST * ast)
inlineoverridevirtual

◆ preorder_walk() [1/17]

void sammine_lang::AST::CgVisitor::preorder_walk ( BinaryExprAST * ast)
overridevirtual

◆ preorder_walk() [2/17]

void sammine_lang::AST::CgVisitor::preorder_walk ( BlockAST * ast)
overridevirtual

◆ preorder_walk() [3/17]

void sammine_lang::AST::CgVisitor::preorder_walk ( BoolExprAST * ast)
overridevirtual

◆ preorder_walk() [4/17]

void sammine_lang::AST::CgVisitor::preorder_walk ( CallExprAST * ast)
overridevirtual

◆ preorder_walk() [5/17]

void sammine_lang::AST::CgVisitor::preorder_walk ( ExternAST * ast)
overridevirtual

◆ preorder_walk() [6/17]

void sammine_lang::AST::CgVisitor::preorder_walk ( FuncDefAST * ast)
overridevirtual

◆ preorder_walk() [7/17]

void sammine_lang::AST::CgVisitor::preorder_walk ( IfExprAST * ast)
overridevirtual

◆ preorder_walk() [8/17]

void sammine_lang::AST::CgVisitor::preorder_walk ( NumberExprAST * ast)
overridevirtual

◆ preorder_walk() [9/17]

void sammine_lang::AST::CgVisitor::preorder_walk ( ProgramAST * ast)
overridevirtual

◆ preorder_walk() [10/17]

void sammine_lang::AST::CgVisitor::preorder_walk ( PrototypeAST * ast)
overridevirtual

INFO: Register the function with its arguments, put it in the module this comes before visiting a function

Implements sammine_lang::AST::ASTVisitor.

◆ preorder_walk() [11/17]

void sammine_lang::AST::CgVisitor::preorder_walk ( RecordDefAST * ast)
overridevirtual

◆ preorder_walk() [12/17]

virtual void sammine_lang::AST::CgVisitor::preorder_walk ( ReturnExprAST * ast)
inlineoverridevirtual

◆ preorder_walk() [13/17]

void sammine_lang::AST::CgVisitor::preorder_walk ( StringExprAST * ast)
overridevirtual

◆ preorder_walk() [14/17]

void sammine_lang::AST::CgVisitor::preorder_walk ( TypedVarAST * ast)
overridevirtual

◆ preorder_walk() [15/17]

void sammine_lang::AST::CgVisitor::preorder_walk ( UnitExprAST * ast)
overridevirtual

◆ preorder_walk() [16/17]

void sammine_lang::AST::CgVisitor::preorder_walk ( VarDefAST * ast)
overridevirtual

◆ preorder_walk() [17/17]

void sammine_lang::AST::CgVisitor::preorder_walk ( VariableExprAST * ast)
overridevirtual

◆ visit()

void sammine_lang::AST::CgVisitor::visit ( FuncDefAST * ast)
overridevirtual

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::ScopedASTVisitor.


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