MimIR 0.1
MimIR is my Intermediate Representation
|
#include <mim/ast/ast.h>
Public Member Functions | |
AST ()=default | |
AST (World &world) | |
AST (AST &&other) | |
~AST () | |
template<class T , class... Args> | |
auto | ptr (Args &&... args) |
void | bootstrap (Sym plugin, std::ostream &h) |
Getters | |
World & | world () |
Driver & | driver () |
Error & | error () |
const Error & | error () const |
Sym | |
Sym | sym (const char *s) |
Sym | sym (std::string_view s) |
Sym | sym (const std::string &s) |
Sym | sym_anon () |
"_" . | |
Sym | sym_return () |
"return" . | |
Sym | sym_error () |
"_error_" . | |
Formatted Output | |
template<class... Args> | |
Error & | error (Loc loc, const char *fmt, Args &&... args) const |
template<class... Args> | |
Error & | warn (Loc loc, const char *fmt, Args &&... args) const |
template<class... Args> | |
Error & | note (Loc loc, const char *fmt, Args &&... args) const |
Manage Annex | |
AnnexInfo * | name2annex (Dbg dbg, sub_t *) |
const auto & | plugin2annexes (Sym plugin) |
Friends | |
void | swap (AST &a1, AST &a2) noexcept |
|
default |
void mim::ast::AST::bootstrap | ( | Sym | plugin, |
std::ostream & | h ) |
Definition at line 52 of file ast.cpp.
References mim::Annex::mangle(), plugin2annexes(), mim::print(), mim::Tab::print(), and sym().
|
inline |
Definition at line 62 of file ast.h.
References mim::World::driver(), and world().
Referenced by mim::ast::Parser::driver(), mim::ast::Scopes::driver(), name2annex(), sym(), sym(), and sym().
|
inline |
Definition at line 63 of file ast.h.
Referenced by mim::ast::Scopes::bind(), mim::ast::Module::compile(), mim::ast::Scopes::find(), mim::ast::Parser::import(), mim::ast::Lexer::lex(), name2annex(), and ~AST().
|
inline |
Definition at line 84 of file ast.h.
References mim::Error::error(), and mim::fmt().
Definition at line 14 of file ast.cpp.
References driver(), error(), mim::Annex::mangle(), mim::Annex::split(), and sym_error().
|
inline |
Definition at line 86 of file ast.h.
References mim::fmt(), and mim::Error::note().
Referenced by mim::ast::Scopes::bind().
|
inline |
Definition at line 93 of file ast.h.
Referenced by bootstrap().
|
inline |
Definition at line 77 of file ast.h.
Referenced by mim::ast::PiExpr::Dom::add_ret(), mim::ast::IdPtrn::mk_id(), mim::ast::IdPtrn::mk_type(), and mim::ast::Ptrn::to_expr().
|
inline |
Definition at line 69 of file ast.h.
References driver().
Referenced by bootstrap(), sym_anon(), sym_error(), and sym_return().
|
inline |
|
inline |
|
inline |
"_"
.
Definition at line 72 of file ast.h.
References sym().
Referenced by mim::ast::IdPtrn::mk_type().
|
inline |
|
inline |
"return"
.
Definition at line 73 of file ast.h.
References sym().
Referenced by mim::ast::PiExpr::Dom::add_ret().
|
inline |
Definition at line 85 of file ast.h.
References mim::fmt(), and mim::Error::warn().
|
inline |
Definition at line 61 of file ast.h.
Referenced by driver(), and mim::ast::Emitter::world().