axm dbg: type, normalizer, curry, trip; or a family axm (name, ...): type, normalizer, curry, trip;.
More...
#include <mim/ast/ast.h>
|
| class | Name |
| | dbg = alias_0 = ... = alias_n-1 - one axiom of the family, which each of its names binds to. More...
|
|
| | AxmDecl (Loc l, Vis v, Dbg mod, Scope *members, bool is_family, Ptr< Expr > type, Dbg normalizer, Tok curry, Tok trip) |
| Dbg | dbg () const override |
| | The mod. prefix, if any.
|
| const Scope * | scope () const override |
| | Non-nullptr if this Decl is a module whose members a Path may walk into.
|
| auto | names () const |
| bool | is_family () const |
| | Whether the names are spelled as a parenthesized list, even if it is just one.
|
| const Expr * | type () const |
| Dbg | normalizer () const |
| Tok | curry () const |
| Tok | trip () const |
| void | bind (Scopes &) const override |
| void | emit (Emitter &) const override |
| void | stream (fe::Tab &, std::ostream &) const override |
| | axm is always anx, so only priv is ever printed.
|
| 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 Mods & | mods () const |
| const Def * | def () const |
| virtual std::pair< AnnexInfo *, sub_t > | annex_sub () const |
| | The (AnnexInfo, sub) slot this decl registered itself under as an annex; {nullptr, 0} if it isn't one.
|
| Loc | loc () const |
| void | dump () const |
axm dbg: type, normalizer, curry, trip; or a family axm (name, ...): type, normalizer, curry, trip;.
A family prefixed with tag. binds as a module and nests its names as subtags of the annex tag.
Definition at line 1073 of file ast.h.
◆ VLA_Types
◆ AxmDecl()
| mim::ast::AxmDecl::AxmDecl |
( |
Loc | l, |
|
|
Vis | v, |
|
|
Dbg | mod, |
|
|
Scope * | members, |
|
|
bool | is_family, |
|
|
Ptr< Expr > | type, |
|
|
Dbg | normalizer, |
|
|
Tok | curry, |
|
|
Tok | trip ) |
|
inline |
◆ bind()
| void mim::ast::AxmDecl::bind |
( |
Scopes & | s | ) |
const |
|
overridevirtual |
◆ curry()
| Tok mim::ast::AxmDecl::curry |
( |
| ) |
const |
|
inline |
◆ dbg()
| Dbg mim::ast::AxmDecl::dbg |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ emit()
| void mim::ast::AxmDecl::emit |
( |
Emitter & | e | ) |
const |
|
overridevirtual |
◆ is_family()
| bool mim::ast::AxmDecl::is_family |
( |
| ) |
const |
|
inline |
Whether the names are spelled as a parenthesized list, even if it is just one.
Definition at line 1115 of file ast.h.
Referenced by AxmDecl(), and stream().
◆ names()
| auto mim::ast::AxmDecl::names |
( |
| ) |
const |
|
inline |
◆ normalizer()
| Dbg mim::ast::AxmDecl::normalizer |
( |
| ) |
const |
|
inline |
◆ scope()
| const Scope * mim::ast::AxmDecl::scope |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ stream()
| void mim::ast::AxmDecl::stream |
( |
fe::Tab & | tab, |
|
|
std::ostream & | os ) const |
|
overridevirtual |
axm is always anx, so only priv is ever printed.
Implements mim::ast::Node.
Definition at line 277 of file stream.cpp.
References curry(), is_family(), names(), normalizer(), mim::ast::Priv, mim::ast::R< T >::R(), mim::ast::S::S(), trip(), type(), and mim::ast::ValDecl::vis().
◆ trip()
| Tok mim::ast::AxmDecl::trip |
( |
| ) |
const |
|
inline |
◆ type()
| const Expr * mim::ast::AxmDecl::type |
( |
| ) |
const |
|
inline |
The documentation for this class was generated from the following files: