MimIR
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
mim::ast::Emitter Class Reference

Public Member Functions

 Emitter (AST &ast)
ASTast () const
Worldworld ()
Driverdriver ()
fe::Error & error ()
void attach (AnnexInfo *annex, sub_t sub, Sym name, const Def *def)
 name is this registration's own (unqualified) Dbg::sym; AnnexInfo::qualified turns it into the full plugin.tag[.sub] name.

Public Attributes

absl::node_hash_map< Sigma *, fe::SymMap< size_t >, GIDHash< const Def * > > sigma2sym2idx

Detailed Description

Definition at line 14 of file emit.cpp.

Constructor & Destructor Documentation

◆ Emitter()

mim::ast::Emitter::Emitter ( AST & ast)
inline

Definition at line 16 of file emit.cpp.

References ast().

Referenced by mim::ast::File::emit().

Member Function Documentation

◆ ast()

AST & mim::ast::Emitter::ast ( ) const
inline

Definition at line 19 of file emit.cpp.

Referenced by Emitter(), and world().

◆ attach()

void mim::ast::Emitter::attach ( AnnexInfo * annex,
sub_t sub,
Sym name,
const Def * def )
inline

name is this registration's own (unqualified) Dbg::sym; AnnexInfo::qualified turns it into the full plugin.tag[.sub] name.

We must take it from the declaration rather than from Def::sym, since hash-consing can make several annexes share a single Def (e.g. mod foo { anx let bar = 23; anx let baz = 23; }).

Definition at line 28 of file emit.cpp.

References mim::World::annexes(), mim::World::Annexes::attach(), driver(), mim::ast::AnnexInfo::id, mim::ast::AnnexInfo::plugin_id(), mim::ast::AnnexInfo::qualified(), and world().

◆ driver()

Driver & mim::ast::Emitter::driver ( )
inline

Definition at line 21 of file emit.cpp.

References mim::World::driver(), and world().

Referenced by attach(), and error().

◆ error()

fe::Error & mim::ast::Emitter::error ( )
inline

Definition at line 22 of file emit.cpp.

References driver().

◆ world()

World & mim::ast::Emitter::world ( )
inline

Definition at line 20 of file emit.cpp.

References ast(), and mim::ast::AST::world().

Referenced by attach(), and driver().

Member Data Documentation

◆ sigma2sym2idx

absl::node_hash_map<Sigma*, fe::SymMap<size_t>, GIDHash<const Def*> > mim::ast::Emitter::sigma2sym2idx

Definition at line 33 of file emit.cpp.


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