|
MimIR 0.1
MimIR is my Intermediate Representation
|
Classes | |
| struct | AnnexInfo |
| class | AST |
| class | Node |
| class | Expr |
| class | Decl |
| class | ValDecl |
| class | Ptrn |
| class | ErrorPtrn |
| class | IdPtrn |
| dbg: type More... | |
| class | GrpPtrn |
| If you have x1 x2 x3 x4: T it consists of 3 GrpPtrns and 1 IdPtrn while each GrpPtrn references the last IdPtrn. More... | |
| class | AliasPtrn |
| ptrn as id More... | |
| class | TuplePtrn |
| (ptrn_0, ..., ptrn_n-1), [ptrn_0, ..., ptrn_n-1], or {ptrn_0, ..., ptrn_n-1} More... | |
| class | ErrorExpr |
| class | HoleExpr |
| class | IdExpr |
| sym More... | |
| class | PrimaryExpr |
| tag More... | |
| class | LitExpr |
| tok:type More... | |
| class | DeclExpr |
decls e or e where decls if where is true. More... | |
| class | TypeExpr |
| Type level More... | |
| class | RuleExpr |
| Reform (type of a rule) Rule type. More... | |
| class | UnionExpr |
| t1 ∪ t2 More... | |
| class | InjExpr |
| value inj t1 ∪ t2 More... | |
| class | MatchExpr |
| class | ArrowExpr |
| dom -> codom More... | |
| class | PiExpr |
| One of: More... | |
| class | LamExpr |
| Wraps a LamDecl as Expr. More... | |
| class | AppExpr |
| callee arg More... | |
| class | RetExpr |
| ret ptrn = callee $ arg; body More... | |
| class | SigmaExpr |
| Just wraps TuplePtrn as Expr. More... | |
| class | TupleExpr |
| (elem_0, ..., elem_n-1) More... | |
| class | SeqExpr |
| «dbg: arity; body» or ‹dbg: arity; body› More... | |
| class | ExtractExpr |
| tuple#index More... | |
| class | InsertExpr |
| ins(tuple, index, value) More... | |
| class | UniqExpr |
| ⦃ expr ⦄ More... | |
| class | LetDecl |
| let ptrn: type = value; More... | |
| class | AxmDecl |
| axm ptrn: type = value; More... | |
| class | RecDecl |
| .rec dbg: type = body More... | |
| class | LamDecl |
| One of: More... | |
| class | CDecl |
| cfun dbg dom -> codom More... | |
| class | RuleDecl |
| rewrite rules rule (x:T, y:T) : x+y => y+x (when ); all meta variables have to be introduced More... | |
| class | Import |
| class | Module |
| class | Lexer |
| class | Parser |
| Parses Mim code as AST. More... | |
| class | Tok |
| class | DummyDecl |
| class | Scopes |
| class | Emitter |
| struct | S |
| struct | R |
| struct | AnnexInfo.sym |
| struct | AnnexInfo.id |
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 | Tag = Tok::Tag |
Enumerations | |
| enum class | Assoc { N , L , R } |
| Associativity of an infix expression. More... | |
| enum class | Prec |
| Expression precedences used by the parser and the dumper; ordered low to high. More... | |
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) |
| constexpr Assoc | prec_assoc (Prec p) |
Associativity of precedence level p. | |
| constexpr bool | is_rassoc (Prec p) |
| constexpr bool | is_lassoc (Prec p) |
| constexpr bool | should_reduce (Prec curr, Prec op) |
Should a Pratt parser reduce when the current binding power is curr and the infix operator has precedence op? | |
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) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) + size_t(1) |
| struct mim::ast::AnnexInfo.sym |
| struct mim::ast::AnnexInfo.id |
| using mim::ast::Dbgs = std::deque<Dbg> |
| using mim::ast::Ptr = fe::Arena::Ptr<const T> |
| using mim::ast::Ptrs = std::deque<Ptr<T>> |
| using mim::ast::Tag = Tok::Tag |
|
strong |
|
strong |
|
constexpr |
Definition at line 54 of file tok.h.
References L, and prec_assoc().
|
constexpr |
Definition at line 192 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 1139 of file ast.h.
References load_plugins().
Definition at line 1138 of file ast.h.
References load_plugins().
Definition at line 1135 of file ast.h.
References load_plugins().
| std::ostream & mim::ast::operator<< | ( | std::ostream & | os, |
| Tok | tok ) |
Associativity of precedence level p.
Definition at line 44 of file tok.h.
References CODE, and MIM_PREC.
Referenced by is_lassoc(), and is_rassoc().
Should a Pratt parser reduce when the current binding power is curr and the infix operator has precedence op?
Definition at line 58 of file tok.h.
References is_rassoc().
|
constexpr |