Project Alice
|
#include <fif.hpp>
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_stack * | working_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_data * | get_var (std::string const &name) override |
virtual var_data * | create_var (std::string const &name, int32_t type) override |
virtual let_data * | get_let (std::string const &name) override |
virtual let_data * | create_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 LLVMBasicBlockRef * | llvm_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_stack * | working_state () |
virtual void | set_working_state (std::unique_ptr< state_stack > p) |
virtual bool | finish (environment &env) |
virtual var_data * | get_var (std::string const &name) |
virtual let_data * | get_let (std::string const &name) |
virtual var_data * | create_var (std::string const &name, int32_t type) |
virtual let_data * | create_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_stack > | initial_state |
std::unique_ptr< state_stack > | iworking_state |
std::unique_ptr< state_stack > | first_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 |
environment & | env |
const bool | llvm_mode |
Additional Inherited Members | |
Protected Attributes inherited from fif::opaque_compiler_data | |
opaque_compiler_data * | parent = nullptr |
|
inline |
|
inline |
|
inlineoverridevirtual |
Reimplemented from fif::opaque_compiler_data.
Definition at line 3370 of file fif.hpp.
|
inlineoverridevirtual |
Reimplemented from fif::opaque_compiler_data.
|
inlineoverridevirtual |
Reimplemented from fif::opaque_compiler_data.
|
inlineoverridevirtual |
Reimplemented from fif::opaque_compiler_data.
LLVMValueRef fif::conditional_scope::branch_condition = nullptr |
size_t fif::conditional_scope::bytecode_first_branch_point = 0 |
size_t fif::conditional_scope::bytecode_second_branch_point = 0 |
LLVMBasicBlockRef fif::conditional_scope::false_block = nullptr |
std::unique_ptr<state_stack> fif::conditional_scope::first_branch_state |
std::unique_ptr<state_stack> fif::conditional_scope::initial_state |
bool fif::conditional_scope::initial_typechecking_failed = false |
bool fif::conditional_scope::interpreter_skipped_first_branch = false |
bool fif::conditional_scope::interpreter_skipped_second_branch = false |
std::unique_ptr<state_stack> fif::conditional_scope::iworking_state |
LLVMBasicBlockRef fif::conditional_scope::parent_block = nullptr |
LLVMBasicBlockRef fif::conditional_scope::true_block = nullptr |
bool fif::conditional_scope::typechecking_failed_on_first_branch = false |