MimIR 0.1
MimIR is my Intermediate Representation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages Concepts
mim::VarRewriter Class Reference

#include <mim/rewrite.h>

Inheritance diagram for mim::VarRewriter:
[legend]

Public Member Functions

 VarRewriter (World &world)
 
 VarRewriter (const Var *var, const Def *arg)
 
void add (const Var *var, const Def *arg)
 
void push () final
 
void pop () final
 
const Defrewrite (const Def *old_def) final
 
bool descend (const Def *old_def)
 
const Defrewrite_mut (Def *mut) final
 
- Public Member Functions inherited from mim::Rewriter
 Rewriter (World &world)
 
Worldworld ()
 
const Defmap (const Def *old_def, const Def *new_def)
 Map old_def to new_def and returns new_def.
 
const Deflookup (const Def *old_def)
 Lookup old_def by searching in reverse through the stack of maps.
 
virtual const Defdispatch (const Def *)
 
virtual const Defrewrite_imm (const Def *)
 
virtual const Defrewrite_arr (const Arr *arr)
 
virtual const Defrewrite_pack (const Pack *pack)
 
virtual const Defrewrite_seq (const Seq *)
 
virtual const Defrewrite_extract (const Extract *)
 
virtual const Defrewrite_hole (Hole *)
 

Detailed Description

Definition at line 58 of file rewrite.h.

Constructor & Destructor Documentation

◆ VarRewriter() [1/2]

mim::VarRewriter::VarRewriter ( World & world)
inline

Definition at line 60 of file rewrite.h.

References mim::Rewriter::Rewriter(), and mim::Rewriter::world().

◆ VarRewriter() [2/2]

mim::VarRewriter::VarRewriter ( const Var * var,
const Def * arg )
inline

Definition at line 63 of file rewrite.h.

References add(), mim::Rewriter::Rewriter(), and mim::Rewriter::world().

Member Function Documentation

◆ add()

void mim::VarRewriter::add ( const Var * var,
const Def * arg )
inline

Definition at line 68 of file rewrite.h.

References mim::Rewriter::map().

Referenced by VarRewriter().

◆ descend()

bool mim::VarRewriter::descend ( const Def * old_def)
inline

Definition at line 91 of file rewrite.h.

References mim::Def::free_vars(), mim::Hole, and mim::Def::isa_imm().

Referenced by rewrite().

◆ pop()

void mim::VarRewriter::pop ( )
inlinefinalvirtual

Reimplemented from mim::Rewriter.

Definition at line 78 of file rewrite.h.

References mim::Rewriter::pop().

◆ push()

void mim::VarRewriter::push ( )
inlinefinalvirtual

Reimplemented from mim::Rewriter.

Definition at line 73 of file rewrite.h.

References mim::Rewriter::push().

◆ rewrite()

const Def * mim::VarRewriter::rewrite ( const Def * old_def)
inlinefinalvirtual

◆ rewrite_mut()

const Def * mim::VarRewriter::rewrite_mut ( Def * mut)
inlinefinalvirtual

Reimplemented from mim::Rewriter.

Definition at line 103 of file rewrite.h.

References mim::Rewriter::rewrite_mut(), mim::World::vars(), and mim::Rewriter::world().


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