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

#include <fif.hpp>

Inheritance diagram for fif::conditional_scope:
Collaboration diagram for fif::conditional_scope:

Public Member Functions

 conditional_scope (opaque_compiler_data *p, environment &e, state_stack &entry_state)
 
void commit_first_branch (environment &)
 
virtual control_structure get_type () 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::unique_ptr< state_stackfirst_branch_state
 
LLVMValueRef branch_condition = nullptr
 
LLVMBasicBlockRef parent_block = nullptr
 
LLVMBasicBlockRef true_block = nullptr
 
LLVMBasicBlockRef false_block = nullptr
 
bool interpreter_skipped_first_branch = false
 
bool interpreter_skipped_second_branch = false
 
bool typechecking_failed_on_first_branch = false
 
bool initial_typechecking_failed = false
 
size_t bytecode_first_branch_point = 0
 
size_t bytecode_second_branch_point = 0
 
- 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 3235 of file fif.hpp.

Constructor & Destructor Documentation

◆ conditional_scope()

fif::conditional_scope::conditional_scope ( opaque_compiler_data p,
environment e,
state_stack entry_state 
)
inline

Definition at line 3251 of file fif.hpp.

Here is the call graph for this function:

Member Function Documentation

◆ commit_first_branch()

void fif::conditional_scope::commit_first_branch ( environment )
inline

Definition at line 3303 of file fif.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ finish()

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

Reimplemented from fif::opaque_compiler_data.

Definition at line 3370 of file fif.hpp.

Here is the call graph for this function:

◆ get_type()

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

Reimplemented from fif::opaque_compiler_data.

Definition at line 3361 of file fif.hpp.

◆ set_working_state()

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

Reimplemented from fif::opaque_compiler_data.

Definition at line 3367 of file fif.hpp.

◆ working_state()

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

Reimplemented from fif::opaque_compiler_data.

Definition at line 3364 of file fif.hpp.

Member Data Documentation

◆ branch_condition

LLVMValueRef fif::conditional_scope::branch_condition = nullptr

Definition at line 3240 of file fif.hpp.

◆ bytecode_first_branch_point

size_t fif::conditional_scope::bytecode_first_branch_point = 0

Definition at line 3248 of file fif.hpp.

◆ bytecode_second_branch_point

size_t fif::conditional_scope::bytecode_second_branch_point = 0

Definition at line 3249 of file fif.hpp.

◆ false_block

LLVMBasicBlockRef fif::conditional_scope::false_block = nullptr

Definition at line 3243 of file fif.hpp.

◆ first_branch_state

std::unique_ptr<state_stack> fif::conditional_scope::first_branch_state

Definition at line 3239 of file fif.hpp.

◆ initial_state

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

Definition at line 3237 of file fif.hpp.

◆ initial_typechecking_failed

bool fif::conditional_scope::initial_typechecking_failed = false

Definition at line 3247 of file fif.hpp.

◆ interpreter_skipped_first_branch

bool fif::conditional_scope::interpreter_skipped_first_branch = false

Definition at line 3244 of file fif.hpp.

◆ interpreter_skipped_second_branch

bool fif::conditional_scope::interpreter_skipped_second_branch = false

Definition at line 3245 of file fif.hpp.

◆ iworking_state

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

Definition at line 3238 of file fif.hpp.

◆ parent_block

LLVMBasicBlockRef fif::conditional_scope::parent_block = nullptr

Definition at line 3241 of file fif.hpp.

◆ true_block

LLVMBasicBlockRef fif::conditional_scope::true_block = nullptr

Definition at line 3242 of file fif.hpp.

◆ typechecking_failed_on_first_branch

bool fif::conditional_scope::typechecking_failed_on_first_branch = false

Definition at line 3246 of file fif.hpp.


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