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

axm dbg: type, normalizer, curry, trip; More...

#include <mim/ast/ast.h>

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

Classes

class  Sibling
 A further tag sharing AxmDecl::type/normalizer/curry/trip with the AxmDecl that owns them. More...

Public Member Functions

 AxmDecl (Loc loc, Vis vis, Dbg dbg, Ptr< Expr > type, Dbg normalizer, Tok curry, Tok trip)
Dbg dbg () const override
 The name this Decl introduces; anonymous if it has none.
const Exprtype () const
Dbg normalizer () const
Tok curry () const
Tok trip () const
const Defmim_type () const
void bind (Scopes &) const override
void emit (Emitter &) const override
void stream (fe::Tab &, std::ostream &) const override
std::pair< AnnexInfo *, sub_tannex_sub () const override
 The (AnnexInfo, sub) slot this decl registered itself under as an annex; {nullptr, 0} if it isn't one.
Public Member Functions inherited from mim::ast::ValDecl
Vis vis () const override
 A ValDecl's own Vis; Pub for anything else (Ptrn, Import, ...), which the priv/pub system ignores.
bool is_extern () const override
 Whether this decl crosses the Mim/native boundary (extern); body presence picks which side supplies it.
bool is_anx () const override
 Whether this decl is registered as a compiler-exposed annex (anx).
const Modsmods () const
Public Member Functions inherited from mim::ast::Decl
const Defdef () const
virtual const Scopescope () const
 Non-nullptr if this Decl is a module whose members a Path may walk into.
Public Member Functions inherited from mim::ast::Node
Loc loc () const
void dump () const

Additional Inherited Members

Protected Member Functions inherited from mim::ast::ValDecl
 ValDecl (Loc loc, Mods mods={})
Protected Member Functions inherited from mim::ast::Decl
 Decl (Loc loc)
Protected Member Functions inherited from mim::ast::Node
 Node (Loc loc)
Protected Attributes inherited from mim::ast::Decl
const Defdef_ = nullptr

Detailed Description

axm dbg: type, normalizer, curry, trip;

Definition at line 965 of file ast.h.

Constructor & Destructor Documentation

◆ AxmDecl()

mim::ast::AxmDecl::AxmDecl ( Loc loc,
Vis vis,
Dbg dbg,
Ptr< Expr > type,
Dbg normalizer,
Tok curry,
Tok trip )
inline

Member Function Documentation

◆ annex_sub()

std::pair< AnnexInfo *, sub_t > mim::ast::AxmDecl::annex_sub ( ) const
inlineoverridevirtual

The (AnnexInfo, sub) slot this decl registered itself under as an annex; {nullptr, 0} if it isn't one.

Reimplemented from mim::ast::Decl.

Definition at line 1010 of file ast.h.

◆ bind()

void mim::ast::AxmDecl::bind ( Scopes & s) const
overridevirtual

Implements mim::ast::ValDecl.

Definition at line 365 of file bind.cpp.

References dbg(), mim::ast::InfixExpr::isa_op(), mim::ast::Node::loc(), normalizer(), and type().

◆ curry()

Tok mim::ast::AxmDecl::curry ( ) const
inline

Definition at line 1003 of file ast.h.

Referenced by AxmDecl(), emit(), mim::ast::AxmDecl::Sibling::emit(), and stream().

◆ dbg()

Dbg mim::ast::AxmDecl::dbg ( ) const
inlineoverridevirtual

The name this Decl introduces; anonymous if it has none.

Reimplemented from mim::ast::Decl.

Definition at line 1000 of file ast.h.

Referenced by AxmDecl(), bind(), emit(), and stream().

◆ emit()

void mim::ast::AxmDecl::emit ( Emitter & e) const
overridevirtual

◆ mim_type()

const Def * mim::ast::AxmDecl::mim_type ( ) const
inline

Definition at line 1005 of file ast.h.

Referenced by mim::ast::AxmDecl::Sibling::emit().

◆ normalizer()

Dbg mim::ast::AxmDecl::normalizer ( ) const
inline

Definition at line 1002 of file ast.h.

Referenced by AxmDecl(), bind(), mim::ast::AxmDecl::Sibling::stream(), and stream().

◆ stream()

void mim::ast::AxmDecl::stream ( fe::Tab & tab,
std::ostream & os ) const
overridevirtual

◆ trip()

Tok mim::ast::AxmDecl::trip ( ) const
inline

Definition at line 1004 of file ast.h.

Referenced by AxmDecl(), emit(), mim::ast::AxmDecl::Sibling::emit(), and stream().

◆ type()

const Expr * mim::ast::AxmDecl::type ( ) const
inline

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