MimIR 0.1
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
mim::ast::Expr Class Referenceabstract

#include <mim/ast/ast.h>

Inheritance diagram for mim::ast::Expr:
[legend]

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 mim::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 mim::ast::Node
 Node (Loc loc)
 
virtual ~Node ()
 

Private Member Functions

virtual Ref emit_ (Emitter &) const =0
 

Precedence

enum class  Prec {
  Err ,
  Bot ,
  Where ,
  Arrow ,
  Pi ,
  App ,
  Extract ,
  Lit
}
 
static constexpr bool is_rassoc (Prec p)
 

Detailed Description

Definition at line 130 of file ast.h.

Member Enumeration Documentation

◆ Prec

enum class mim::ast::Expr::Prec
strong
Enumerator
Err 
Bot 
Where 
Arrow 
Pi 
App 
Extract 
Lit 

Definition at line 138 of file ast.h.

Constructor & Destructor Documentation

◆ Expr()

mim::ast::Expr::Expr ( Loc loc)
inlineprotected

Definition at line 132 of file ast.h.

Member Function Documentation

◆ bind()

◆ emit()

◆ emit_()

◆ emit_body()

virtual void mim::ast::Expr::emit_body ( Emitter & ,
Ref  ) const
inlinevirtual

Reimplemented in mim::ast::ArrowExpr, mim::ast::LamExpr, mim::ast::PiExpr, and mim::ast::SigmaExpr.

Definition at line 155 of file ast.h.

◆ emit_decl()

virtual Ref mim::ast::Expr::emit_decl ( Emitter & ,
Ref  ) const
inlinevirtual

Reimplemented in mim::ast::ArrowExpr, mim::ast::LamExpr, mim::ast::PiExpr, and mim::ast::SigmaExpr.

Definition at line 154 of file ast.h.

◆ is_rassoc()

static constexpr bool mim::ast::Expr::is_rassoc ( Prec p)
inlinestaticconstexpr

Definition at line 149 of file ast.h.

References Arrow.


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