MimIR 0.1
MimIR is my Intermediate Representation
|
Classes | |
struct | AnnexInfo |
struct | AnnexInfo.id |
struct | AnnexInfo.sym |
class | AppExpr |
callee arg More... | |
class | ArrOrPackExpr |
«dbg: shape; body» or ‹dbg: shape; body› More... | |
class | ArrowExpr |
dom -> codom More... | |
class | AST |
class | AxiomDecl |
axm ptrn: type = value; More... | |
class | CDecl |
cfun dbg dom -> codom More... | |
class | Decl |
class | DeclExpr |
decls e or e where decls if where is true . More... | |
class | DummyDecl |
class | Emitter |
class | ErrorExpr |
class | ErrorPtrn |
class | Expr |
class | ExtractExpr |
tuple#index More... | |
class | GrpPtrn |
dbg_0 ... dbg_n-2 id where id = dbg_n-1: type More... | |
class | IdExpr |
sym More... | |
class | IdPtrn |
dbg: type More... | |
class | Import |
class | InferExpr |
class | InsertExpr |
ins(tuple, index, value) More... | |
class | LamDecl |
One of: More... | |
class | LamExpr |
Wraps a LamDecl as Expr. More... | |
class | LetDecl |
let ptrn: type = value; More... | |
class | Lexer |
class | LitExpr |
tok:type More... | |
class | Module |
class | Node |
class | Parser |
Parses Mim code as AST. More... | |
class | PiExpr |
One of: More... | |
class | PrimaryExpr |
tag More... | |
class | Ptrn |
struct | R |
class | RecDecl |
.rec dbg: type = body More... | |
class | RetExpr |
ret ptrn = callee $ arg; body More... | |
struct | S |
class | Scopes |
class | SigmaExpr |
Just wraps TuplePtrn as Expr. More... | |
class | Tok |
class | TupleExpr |
(elem_0, ..., elem_n-1) More... | |
class | TuplePtrn |
dbg::(ptrn_0, ..., ptrn_n-1) or dbg::[ptrn_0, ..., ptrn_n-1] More... | |
class | TypeExpr |
Type level More... | |
class | ValDecl |
Typedefs | |
template<class T > | |
using | Ptr = fe::Arena::Ptr<const T> |
template<class T > | |
using | Ptrs = std::deque<Ptr<T>> |
using | Dbgs = std::deque<Dbg> |
using | ArrExpr = ArrOrPackExpr<true> |
using | PackExpr = ArrOrPackExpr<false> |
using | Tag = Tok::Tag |
Functions | |
AST | load_plugins (World &, View< Sym >) |
AST | load_plugins (World &w, View< std::string > plugins) |
AST | load_plugins (World &w, Sym sym) |
AST | load_plugins (World &w, const std::string &plugin) |
std::ostream operator | |
std::ostream & | operator<< (std::ostream &os, Tok tok) |
Variables | |
constexpr size_t | Look_Ahead = 2 |
constexpr auto | Num_Keys = size_t(0) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) |
Precedence | |
enum class | Prec { Err , Bot , Where , Arrow , Pi , App , Extract , Lit } |
constexpr bool | is_rassoc (Prec p) |
struct mim::ast::AnnexInfo.id |
struct mim::ast::AnnexInfo.sym |
using mim::ast::ArrExpr = ArrOrPackExpr<true> |
using mim::ast::Dbgs = std::deque<Dbg> |
using mim::ast::PackExpr = ArrOrPackExpr<false> |
using mim::ast::Ptr = fe::Arena::Ptr<const T> |
using mim::ast::Ptrs = std::deque<Ptr<T>> |
typedef Tok::Tag mim::ast::Tag = Tok::Tag |
|
strong |
|
inlineconstexpr |
Definition at line 190 of file ast.cpp.
References mim::Flags::bootstrap, mim::World::driver(), mim::Driver::flags(), and mim::Driver::load().
Referenced by load_plugins(), load_plugins(), and load_plugins().
Definition at line 959 of file ast.h.
References load_plugins().
Definition at line 958 of file ast.h.
References load_plugins().
Definition at line 955 of file ast.h.
References load_plugins().
std::ostream & mim::ast::operator<< | ( | std::ostream & | os, |
Tok | tok ) |
|
constexpr |