MimIR 0.1
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
mim::ast::Module Class Reference

#include <mim/ast/ast.h>

Inheritance diagram for mim::ast::Module:
[legend]

Public Member Functions

 Module (Loc loc, Ptrs< Import > &&imports, Ptrs< ValDecl > &&decls)
 
const auto & implicit_imports () const
 
const auto & imports () const
 
const auto & decls () const
 
void add_implicit_imports (Ptrs< Import > &&imports) const
 
void compile (AST &) const
 
void bind (AST &) const
 
void bind (Scopes &) const
 
void emit (AST &) const
 
void emit (Emitter &) const
 
std::ostream & stream (Tab &, std::ostream &) const override
 
- Public Member Functions inherited from mim::ast::Node
Loc loc () const
 
void dump () const
 

Additional Inherited Members

- Protected Member Functions inherited from mim::ast::Node
 Node (Loc loc)
 
virtual ~Node ()
 

Detailed Description

Definition at line 924 of file ast.h.

Constructor & Destructor Documentation

◆ Module()

mim::ast::Module::Module ( Loc loc,
Ptrs< Import > && imports,
Ptrs< ValDecl > && decls )
inline

Definition at line 926 of file ast.h.

Member Function Documentation

◆ add_implicit_imports()

void mim::ast::Module::add_implicit_imports ( Ptrs< Import > && imports) const
inline

Definition at line 935 of file ast.h.

References imports().

◆ bind() [1/2]

void mim::ast::Module::bind ( AST & ast) const

Definition at line 77 of file bind.cpp.

References bind().

Referenced by mim::ast::Import::bind(), bind(), and compile().

◆ bind() [2/2]

void mim::ast::Module::bind ( Scopes & s) const

Definition at line 82 of file bind.cpp.

References decls(), implicit_imports(), and imports().

◆ compile()

void mim::ast::Module::compile ( AST & ast) const

◆ decls()

const auto & mim::ast::Module::decls ( ) const
inline

Definition at line 933 of file ast.h.

Referenced by bind(), emit(), and stream().

◆ emit() [1/2]

void mim::ast::Module::emit ( AST & ast) const

Definition at line 35 of file emit.cpp.

References emit().

Referenced by compile(), mim::ast::Import::emit(), and emit().

◆ emit() [2/2]

void mim::ast::Module::emit ( Emitter & e) const

Definition at line 40 of file emit.cpp.

References decls(), implicit_imports(), imports(), and mim::ast::Node::loc().

◆ implicit_imports()

const auto & mim::ast::Module::implicit_imports ( ) const
inline

Definition at line 931 of file ast.h.

Referenced by bind(), and emit().

◆ imports()

const auto & mim::ast::Module::imports ( ) const
inline

Definition at line 932 of file ast.h.

Referenced by add_implicit_imports(), bind(), emit(), and stream().

◆ stream()

std::ostream & mim::ast::Module::stream ( Tab & tab,
std::ostream & os ) const
overridevirtual

Implements mim::ast::Node.

Definition at line 43 of file stream.cpp.

References decls(), imports(), and mim::Tab::println().


The documentation for this class was generated from the following files: