Thorin 1.9.0
The Higher ORder INtermediate representation
|
#include <thorin/ast/ast.h>
Public Member Functions | |
Dom (Loc loc, bool is_implicit, Ptr< Ptrn > &&ptrn) | |
bool | is_implicit () const |
const Ptrn * | ptrn () const |
const IdPtrn * | ret () const |
void | add_ret (AST &ast, Ptr< Expr > &&type) const |
virtual void | bind (Scopes &scopes, bool quiet=false) const |
virtual void | emit_type (Emitter &) const |
std::ostream & | stream (Tab &, std::ostream &) const override |
Public Member Functions inherited from thorin::ast::Node | |
Loc | loc () const |
void | dump () const |
Protected Attributes | |
Pi * | pi_ = nullptr |
Pi * | decl_ = nullptr |
Friends | |
class | PiExpr |
Additional Inherited Members | |
Protected Member Functions inherited from thorin::ast::Node | |
Node (Loc loc) | |
virtual | ~Node () |
Definition at line 460 of file ast.h.
References thorin::ast::Node::loc(), thorin::ast::AST::ptr(), and thorin::ast::AST::sym_return().
|
virtual |
Reimplemented in thorin::ast::LamDecl::Dom.
Definition at line 147 of file bind.cpp.
References thorin::ast::Ptrn::bind(), thorin::ast::IdPtrn::bind(), ptrn(), and ret().
Referenced by thorin::ast::PiExpr::bind(), thorin::ast::CDecl::bind(), thorin::ast::LamDecl::Dom::bind(), thorin::ast::LamDecl::bind_body(), and thorin::ast::LamDecl::bind_decl().
|
virtual |
Definition at line 187 of file emit.cpp.
References decl_, emit_type(), thorin::ast::Ptrn::emit_type(), thorin::ast::Ptrn::emit_value(), is_implicit(), thorin::ast::Node::loc(), pi_, ptrn(), ret(), thorin::Pi::set_dom(), and thorin::Def::var().
Referenced by thorin::ast::CDecl::emit(), thorin::ast::PiExpr::emit_(), thorin::ast::LamDecl::emit_decl(), and emit_type().
|
inline |
Definition at line 456 of file ast.h.
Referenced by emit_type(), and stream().
|
inline |
Definition at line 457 of file ast.h.
Referenced by bind(), emit_type(), and stream().
|
inline |
Definition at line 458 of file ast.h.
Referenced by bind(), emit_type(), and stream().
|
overridevirtual |
Implements thorin::ast::Node.
Definition at line 113 of file stream.cpp.
References is_implicit(), thorin::print(), ptrn(), and ret().
|
mutableprotected |
Definition at line 471 of file ast.h.
Referenced by emit_type().
|
mutableprotected |
Definition at line 470 of file ast.h.
Referenced by thorin::ast::PiExpr::emit_(), thorin::ast::LamDecl::emit_decl(), and emit_type().