Thorin 1.9.0
The Higher ORder INtermediate representation
|
#include <thorin/ast/ast.h>
Public Member Functions | |
Ref | emit (Emitter &) const |
virtual void | bind (Scopes &) const =0 |
virtual Ref | emit_decl (Emitter &, Ref) const |
virtual void | emit_body (Emitter &, Ref) const |
Public Member Functions inherited from thorin::ast::Node | |
Loc | loc () const |
virtual std::ostream & | stream (Tab &, std::ostream &) const =0 |
void | dump () const |
Protected Member Functions | |
Expr (Loc loc) | |
Protected Member Functions inherited from thorin::ast::Node | |
Node (Loc loc) | |
virtual | ~Node () |
Private Member Functions | |
virtual Ref | emit_ (Emitter &) const =0 |
|
pure virtual |
Implemented in thorin::ast::ErrorExpr, thorin::ast::InferExpr, thorin::ast::IdExpr, thorin::ast::PrimaryExpr, thorin::ast::LitExpr, thorin::ast::BlockExpr, thorin::ast::DeclExpr, thorin::ast::TypeExpr, thorin::ast::ArrowExpr, thorin::ast::PiExpr, thorin::ast::LamExpr, thorin::ast::AppExpr, thorin::ast::RetExpr, thorin::ast::SigmaExpr, thorin::ast::TupleExpr, thorin::ast::ArrOrPackExpr< arr >, thorin::ast::ExtractExpr, and thorin::ast::InsertExpr.
Referenced by thorin::ast::LitExpr::bind(), thorin::ast::BlockExpr::bind(), thorin::ast::DeclExpr::bind(), thorin::ast::ArrowExpr::bind(), thorin::ast::PiExpr::bind(), thorin::ast::CDecl::bind(), thorin::ast::IdPtrn::bind(), and thorin::ast::LamDecl::bind_decl().
Definition at line 110 of file emit.cpp.
References emit_(), and thorin::ast::Node::loc().
Referenced by thorin::ast::CDecl::emit(), thorin::ast::LitExpr::emit_(), thorin::ast::BlockExpr::emit_(), thorin::ast::DeclExpr::emit_(), thorin::ast::TypeExpr::emit_(), thorin::ast::ArrowExpr::emit_(), thorin::ast::PiExpr::emit_(), thorin::ast::RetExpr::emit_(), thorin::ast::ArrOrPackExpr< arr >::emit_(), thorin::ast::LamDecl::emit_body(), thorin::ast::PiExpr::emit_body(), thorin::ast::LamDecl::emit_decl(), and thorin::ast::IdPtrn::emit_type().
Implemented in thorin::ast::ErrorExpr, thorin::ast::InferExpr, thorin::ast::IdExpr, thorin::ast::PrimaryExpr, thorin::ast::LitExpr, thorin::ast::BlockExpr, thorin::ast::DeclExpr, thorin::ast::TypeExpr, thorin::ast::ArrowExpr, thorin::ast::PiExpr, thorin::ast::LamExpr, thorin::ast::AppExpr, thorin::ast::RetExpr, thorin::ast::SigmaExpr, thorin::ast::TupleExpr, thorin::ast::ArrOrPackExpr< arr >, thorin::ast::ExtractExpr, and thorin::ast::InsertExpr.
Referenced by emit().
Reimplemented in thorin::ast::PiExpr, thorin::ast::LamExpr, and thorin::ast::SigmaExpr.
Reimplemented in thorin::ast::PiExpr, thorin::ast::LamExpr, and thorin::ast::SigmaExpr.