MimIR
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
mim::ast::AnnexInfo Struct Reference

Bookkeeping of an annex introduced by an AxmDecl. More...

#include <mim/ast/ast.h>

Classes

struct  [struct].sym
struct  [struct].id

Public Member Functions

 AnnexInfo (Sym sym_plugin, Sym sym_tag, tag_t id_tag)
plugin_t plugin_id () const
 The mangled plugin part of the flags.
flags_t base () const
 The base flags (plugin + tag, no sub).
Sym qualified (Driver &driver, Sym own) const
 Fully-qualified plugin.tag[.sub] name for own (this decl's own Dbg::sym), registered for by-name lookups (e.g.

Public Attributes

struct  sym
struct  id
fe::Vector< fe::Vector< Sym > > subs
 List of subs which is a list of aliases.
Dbg normalizer
std::optional< bool > pi
bool fresh = true

Detailed Description

Bookkeeping of an annex introduced by an AxmDecl.

Definition at line 66 of file ast.h.


Class Documentation

◆ mim::ast::AnnexInfo::[struct].sym

struct mim::ast::AnnexInfo::[struct].sym

Definition at line 83 of file ast.h.

Class Members
Sym plugin
Sym tag

◆ mim::ast::AnnexInfo::[struct].id

struct mim::ast::AnnexInfo::[struct].id

Definition at line 87 of file ast.h.

Class Members
u8 curry
tag_t tag
u8 trip

Constructor & Destructor Documentation

◆ AnnexInfo()

mim::ast::AnnexInfo::AnnexInfo ( Sym sym_plugin,
Sym sym_tag,
tag_t id_tag )
inline

Definition at line 67 of file ast.h.

References id, and sym.

Member Function Documentation

◆ base()

flags_t mim::ast::AnnexInfo::base ( ) const
inline

The base flags (plugin + tag, no sub).

Definition at line 75 of file ast.h.

References mim::Annex::flags(), and plugin_id().

Referenced by qualified().

◆ plugin_id()

plugin_t mim::ast::AnnexInfo::plugin_id ( ) const
inline

The mangled plugin part of the flags.

Derived from sym.plugin which is guaranteed mangleable by the time an AnnexInfo exists.

Definition at line 73 of file ast.h.

References mim::Annex::mangle(), and sym.

Referenced by mim::ast::Emitter::attach(), and base().

◆ qualified()

Sym mim::ast::AnnexInfo::qualified ( Driver & driver,
Sym own ) const
inline

Fully-qualified plugin.tag[.sub] name for own (this decl's own Dbg::sym), registered for by-name lookups (e.g.

compile.named); own == sym.tag (no enclosing mod) omits the .sub part.

Definition at line 78 of file ast.h.

References base(), and sym.

Referenced by mim::ast::Emitter::attach().

Member Data Documentation

◆ fresh

bool mim::ast::AnnexInfo::fresh = true

Definition at line 95 of file ast.h.

◆ id

struct mim::ast::AnnexInfo::[struct].id mim::ast::AnnexInfo::id

◆ normalizer

Dbg mim::ast::AnnexInfo::normalizer

Definition at line 93 of file ast.h.

◆ pi

std::optional<bool> mim::ast::AnnexInfo::pi

Definition at line 94 of file ast.h.

◆ subs

fe::Vector<fe::Vector<Sym> > mim::ast::AnnexInfo::subs

List of subs which is a list of aliases.

Definition at line 92 of file ast.h.

◆ sym

struct mim::ast::AnnexInfo::[struct].sym mim::ast::AnnexInfo::sym

Referenced by AnnexInfo(), plugin_id(), and qualified().


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