Project Alice
Loading...
Searching...
No Matches
fif::function_scope Class Reference

#include <fif.hpp>

Inheritance diagram for fif::function_scope:
Collaboration diagram for fif::function_scope:

Public Member Functions

 function_scope (opaque_compiler_data *p, environment &e, state_stack &entry_state, int32_t for_word, int32_t for_instance)
 
virtual std::vector< int32_t > * type_substitutions () override
 
virtual control_structure get_type () override
 
virtual LLVMValueRef llvm_function () override
 
virtual LLVMBasicBlockRefllvm_block () override
 
virtual int32_t word_id () override
 
virtual int32_t instance_id () override
 
virtual std::vector< int32_t > * bytecode_compilation_progress () override
 
virtual ankerl::unordered_dense::map< uint64_t, typecheck_3_record > * typecheck_record () override
 
virtual state_stackworking_state () override
 
virtual void set_working_state (std::unique_ptr< state_stack > p) override
 
virtual bool finish (environment &) override
 
- Public Member Functions inherited from fif::locals_holder
 locals_holder (opaque_compiler_data *p, environment &env)
 
virtual var_dataget_var (std::string const &name) override
 
virtual var_datacreate_var (std::string const &name, int32_t type) override
 
virtual let_dataget_let (std::string const &name) override
 
virtual let_datacreate_let (std::string const &name, int32_t type, int64_t data, LLVMValueRef expression) override
 
void release_locals ()
 
- Public Member Functions inherited from fif::opaque_compiler_data
 opaque_compiler_data (opaque_compiler_data *parent)
 
virtual ~opaque_compiler_data ()=default
 
virtual control_structure get_type ()
 
virtual LLVMValueRef llvm_function ()
 
virtual LLVMBasicBlockRefllvm_block ()
 
virtual int32_t word_id ()
 
virtual int32_t instance_id ()
 
virtual std::vector< int32_t > * bytecode_compilation_progress ()
 
virtual ankerl::unordered_dense::map< uint64_t, typecheck_3_record > * typecheck_record ()
 
virtual state_stackworking_state ()
 
virtual void set_working_state (std::unique_ptr< state_stack > p)
 
virtual bool finish (environment &env)
 
virtual var_dataget_var (std::string const &name)
 
virtual let_dataget_let (std::string const &name)
 
virtual var_datacreate_var (std::string const &name, int32_t type)
 
virtual let_datacreate_let (std::string const &name, int32_t type, int64_t data, LLVMValueRef expression)
 
virtual std::vector< int32_t > * type_substitutions ()
 

Public Attributes

std::unique_ptr< state_stackinitial_state
 
std::unique_ptr< state_stackiworking_state
 
std::vector< int32_t > compiled_bytes
 
std::vector< int32_t > type_subs
 
LLVMValueRef llvm_fn = nullptr
 
LLVMBasicBlockRef current_block = nullptr
 
int32_t for_word = -1
 
int32_t for_instance = -1
 
- Public Attributes inherited from fif::locals_holder
ankerl::unordered_dense::map< std::string, std::unique_ptr< var_data > > vars
 
ankerl::unordered_dense::map< std::string, std::unique_ptr< let_data > > lets
 
environmentenv
 
const bool llvm_mode
 

Additional Inherited Members

- Protected Attributes inherited from fif::opaque_compiler_data
opaque_compiler_dataparent = nullptr
 

Detailed Description

Definition at line 2682 of file fif.hpp.

Constructor & Destructor Documentation

◆ function_scope()

fif::function_scope::function_scope ( opaque_compiler_data p,
environment e,
state_stack entry_state,
int32_t  for_word,
int32_t  for_instance 
)
inline

Definition at line 2694 of file fif.hpp.

Here is the call graph for this function:

Member Function Documentation

◆ bytecode_compilation_progress()

virtual std::vector< int32_t > * fif::function_scope::bytecode_compilation_progress ( )
inlineoverridevirtual

Reimplemented from fif::opaque_compiler_data.

Definition at line 2761 of file fif.hpp.

◆ finish()

virtual bool fif::function_scope::finish ( environment )
inlineoverridevirtual

Reimplemented from fif::opaque_compiler_data.

Definition at line 2773 of file fif.hpp.

Here is the call graph for this function:

◆ get_type()

virtual control_structure fif::function_scope::get_type ( )
inlineoverridevirtual

Reimplemented from fif::opaque_compiler_data.

Definition at line 2746 of file fif.hpp.

◆ instance_id()

virtual int32_t fif::function_scope::instance_id ( )
inlineoverridevirtual

Reimplemented from fif::opaque_compiler_data.

Definition at line 2758 of file fif.hpp.

◆ llvm_block()

virtual LLVMBasicBlockRef * fif::function_scope::llvm_block ( )
inlineoverridevirtual

Reimplemented from fif::opaque_compiler_data.

Definition at line 2752 of file fif.hpp.

◆ llvm_function()

virtual LLVMValueRef fif::function_scope::llvm_function ( )
inlineoverridevirtual

Reimplemented from fif::opaque_compiler_data.

Definition at line 2749 of file fif.hpp.

◆ set_working_state()

virtual void fif::function_scope::set_working_state ( std::unique_ptr< state_stack p)
inlineoverridevirtual

Reimplemented from fif::opaque_compiler_data.

Definition at line 2770 of file fif.hpp.

◆ type_substitutions()

virtual std::vector< int32_t > * fif::function_scope::type_substitutions ( )
inlineoverridevirtual

Reimplemented from fif::opaque_compiler_data.

Definition at line 2743 of file fif.hpp.

◆ typecheck_record()

virtual ankerl::unordered_dense::map< uint64_t, typecheck_3_record > * fif::function_scope::typecheck_record ( )
inlineoverridevirtual

Reimplemented from fif::opaque_compiler_data.

Definition at line 2764 of file fif.hpp.

Here is the call graph for this function:

◆ word_id()

virtual int32_t fif::function_scope::word_id ( )
inlineoverridevirtual

Reimplemented from fif::opaque_compiler_data.

Definition at line 2755 of file fif.hpp.

◆ working_state()

virtual state_stack * fif::function_scope::working_state ( )
inlineoverridevirtual

Reimplemented from fif::opaque_compiler_data.

Definition at line 2767 of file fif.hpp.

Member Data Documentation

◆ compiled_bytes

std::vector<int32_t> fif::function_scope::compiled_bytes

Definition at line 2686 of file fif.hpp.

◆ current_block

LLVMBasicBlockRef fif::function_scope::current_block = nullptr

Definition at line 2689 of file fif.hpp.

◆ for_instance

int32_t fif::function_scope::for_instance = -1

Definition at line 2691 of file fif.hpp.

◆ for_word

int32_t fif::function_scope::for_word = -1

Definition at line 2690 of file fif.hpp.

◆ initial_state

std::unique_ptr<state_stack> fif::function_scope::initial_state

Definition at line 2684 of file fif.hpp.

◆ iworking_state

std::unique_ptr<state_stack> fif::function_scope::iworking_state

Definition at line 2685 of file fif.hpp.

◆ llvm_fn

LLVMValueRef fif::function_scope::llvm_fn = nullptr

Definition at line 2688 of file fif.hpp.

◆ type_subs

std::vector<int32_t> fif::function_scope::type_subs

Definition at line 2687 of file fif.hpp.


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