MimIR 0.1
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
ast.h File Reference
#include <deque>
#include <memory>
#include <fe/arena.h>
#include <fe/assert.h>
#include <fe/cast.h>
#include "mim/ast/tok.h"
#include "mim/driver.h"
Include dependency graph for ast.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  mim::ast::AnnexInfo
 
class  mim::ast::AST
 
class  mim::ast::Node
 
class  mim::ast::Expr
 
class  mim::ast::Decl
 
class  mim::ast::ValDecl
 
class  mim::ast::Ptrn
 
class  mim::ast::ErrorPtrn
 
class  mim::ast::IdPtrn
 dbg: type More...
 
class  mim::ast::GrpPtrn
 dbg_0 ... dbg_n-2 id where id = dbg_n-1: type More...
 
class  mim::ast::TuplePtrn
 dbg::(ptrn_0, ..., ptrn_n-1) or dbg::[ptrn_0, ..., ptrn_n-1] More...
 
class  mim::ast::ErrorExpr
 
class  mim::ast::InferExpr
 
class  mim::ast::IdExpr
 sym More...
 
class  mim::ast::PrimaryExpr
 tag More...
 
class  mim::ast::LitExpr
 tok:type More...
 
class  mim::ast::DeclExpr
 decls e or e .where decls if where is true. More...
 
class  mim::ast::TypeExpr
 .Type level More...
 
class  mim::ast::ArrowExpr
 dom -> codom More...
 
class  mim::ast::PiExpr
 One of: More...
 
class  mim::ast::PiExpr::Dom
 
class  mim::ast::LamExpr
 Wraps a LamDecl as Expr. More...
 
class  mim::ast::AppExpr
 callee arg More...
 
class  mim::ast::RetExpr
 .ret ptrn = callee $ arg; body More...
 
class  mim::ast::SigmaExpr
 Just wraps TuplePtrn as Expr. More...
 
class  mim::ast::TupleExpr
 (elem_0, ..., elem_n-1) More...
 
class  mim::ast::ArrOrPackExpr< arr >
 «dbg: shape; body» or ‹dbg: shape; body› More...
 
class  mim::ast::ExtractExpr
 tuple#index More...
 
class  mim::ast::InsertExpr
 .ins(tuple, index, value) More...
 
class  mim::ast::LetDecl
 .let ptrn: type = value; More...
 
class  mim::ast::AxiomDecl
 .ax ptrn: type = value; More...
 
class  mim::ast::AxiomDecl::Alias
 
class  mim::ast::RecDecl
 .rec dbg: type = body More...
 
class  mim::ast::LamDecl
 One of: More...
 
class  mim::ast::LamDecl::Dom
 
class  mim::ast::CDecl
 .cfun dbg dom -> codom More...
 
class  mim::ast::Import
 
class  mim::ast::Module
 
struct  mim::ast::AnnexInfo.sym
 
struct  mim::ast::AnnexInfo.id
 

Namespaces

namespace  mim
 
namespace  mim::ast
 

Typedefs

template<class T >
using mim::ast::Ptr = fe::Arena::Ptr<const T>
 
template<class T >
using mim::ast::Ptrs = std::deque<Ptr<T>>
 
using mim::ast::Dbgs = std::deque<Dbg>
 
using mim::ast::ArrExpr = ArrOrPackExpr<true>
 
using mim::ast::PackExpr = ArrOrPackExpr<false>
 

Functions

AST mim::ast::load_plugins (World &, View< Sym >)
 
AST mim::ast::load_plugins (World &w, View< std::string > plugins)
 
AST mim::ast::load_plugins (World &w, Sym sym)
 
AST mim::ast::load_plugins (World &w, const std::string &plugin)
 

Class Documentation

◆ mim::ast::AnnexInfo.sym

struct mim::ast::AnnexInfo.sym

Definition at line 33 of file ast.h.

Class Members
Sym plugin
Sym tag

◆ mim::ast::AnnexInfo.id

struct mim::ast::AnnexInfo.id

Definition at line 36 of file ast.h.

Class Members
uint8_t curry
plugin_t plugin
tag_t tag
uint8_t trip