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 ()
void attach (AnnexInfo *annex, sub_t sub, Sym name, const Def *def)
 name is the full syntactic name of this registration (plugin.tag or plugin.tag.sub).

Public Attributes

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

Detailed Description

Definition at line 12 of file emit.cpp.

Constructor & Destructor Documentation

◆ Emitter()

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

Definition at line 14 of file emit.cpp.

References ast().

Member Function Documentation

◆ ast()

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

Definition at line 17 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 the full syntactic name of this registration (plugin.tag or plugin.tag.sub).

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. let foo.bar = 23; let foo.baz = 23;).

Definition at line 24 of file emit.cpp.

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

◆ driver()

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

Definition at line 19 of file emit.cpp.

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

◆ world()

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

Definition at line 18 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 28 of file emit.cpp.


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