MimIR 0.1
MimIR is my Intermediate Representation
|
#include <mim/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 mim::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 mim::ast::Node | |
Node (Loc loc) | |
virtual | ~Node () |
Definition at line 454 of file ast.h.
References mim::ast::Node::loc(), mim::ast::AST::ptr(), and mim::ast::AST::sym_return().
|
virtual |
Reimplemented in mim::ast::LamDecl::Dom.
Definition at line 143 of file bind.cpp.
References mim::ast::IdPtrn::bind(), mim::ast::Ptrn::bind(), ptrn(), and ret().
Referenced by mim::ast::CDecl::bind(), mim::ast::LamDecl::Dom::bind(), mim::ast::PiExpr::bind(), mim::ast::LamDecl::bind_body(), and mim::ast::LamDecl::bind_decl().
|
virtual |
Definition at line 194 of file emit.cpp.
References decl_, emit_type(), mim::ast::Ptrn::emit_type(), mim::ast::Ptrn::emit_value(), is_implicit(), mim::ast::Node::loc(), pi_, ptrn(), ret(), mim::Pi::set_dom(), and mim::Def::var().
Referenced by mim::ast::CDecl::emit(), mim::ast::PiExpr::emit_(), mim::ast::LamDecl::emit_decl(), and emit_type().
|
inline |
Definition at line 450 of file ast.h.
Referenced by emit_type(), and stream().
|
inline |
Definition at line 451 of file ast.h.
Referenced by bind(), emit_type(), and stream().
|
inline |
Definition at line 452 of file ast.h.
Referenced by bind(), emit_type(), and stream().
|
overridevirtual |
Implements mim::ast::Node.
Definition at line 114 of file stream.cpp.
References is_implicit(), mim::print(), ptrn(), and ret().
|
mutableprotected |
Definition at line 465 of file ast.h.
Referenced by emit_type().
|
mutableprotected |
Definition at line 464 of file ast.h.
Referenced by mim::ast::PiExpr::emit_(), mim::ast::LamDecl::emit_decl(), and emit_type().