| ctor_0: type_0 | ... | ctor_n-1: type_n-1; a constructor without a type carries []. More...
#include <mim/ast/ast.h>
Classes | |
| class | Ctor |
| dbg: type of a VariantExpr. More... | |
Public Types | |
| using | VLA_Types = std::tuple<Ptr<Ctor>> |
Public Member Functions | |
| VariantExpr (Loc loc) | |
| auto | ctors () const |
| const Ctor * | ctor (size_t i) const |
| size_t | num_ctors () const |
| void | bind (Scopes &) const override |
| void | stream (fe::Tab &, std::ostream &) const override |
| Public Member Functions inherited from mim::ast::Expr | |
| const Def * | emit (Emitter &) const |
| const Def * | emit_decl (Emitter &, const Def *type) const |
| void | emit_body (Emitter &, const Def *decl) const |
| Public Member Functions inherited from mim::ast::Node | |
| Loc | loc () const |
| void | dump () const |
Private Member Functions | |
| const Def * | emit_ (Emitter &) const override |
| const Def * | emit_decl_ (Emitter &, const Def *type) const override |
| void | emit_body_ (Emitter &, const Def *decl) const override |
Additional Inherited Members | |
| Protected Member Functions inherited from mim::ast::Expr | |
| Expr (Loc loc) | |
| Protected Member Functions inherited from mim::ast::Node | |
| Node (Loc loc) | |
| ctor_0: type_0 | ... | ctor_n-1: type_n-1; a constructor without a type carries [].
| using mim::ast::VariantExpr::VLA_Types = std::tuple<Ptr<Ctor>> |
|
inline |
Definition at line 764 of file ast.h.
References mim::ast::Expr::Expr(), and mim::ast::Node::loc().
|
overridevirtual |
|
inline |
|
inline |
Implements mim::ast::Expr.
|
overrideprivatevirtual |
Reimplemented from mim::ast::Expr.
Definition at line 829 of file emit.cpp.
References mim::Def::as_mut(), and mim::Variant::set().
|
inline |
Definition at line 769 of file ast.h.
References ctors().
Referenced by mim::ast::Emitter::add_ctors(), emit_decl_(), and stream().
|
overridevirtual |
Implements mim::ast::Node.
Definition at line 185 of file stream.cpp.
References ctor(), ctors(), num_ctors(), and mim::ast::S::S().