11 this->link_to_cursors(&instruction);
25 this->link_to_cursors(&instruction);
33 this->link_to_cursors(&instruction);
58 input_and_mutable_variables = input_and_mutable_variables.
drop_front(1);
65 output_variables.
append(&variable);
72 return output_variables;
79 this->link_to_cursors(&instruction);
83 Branch branch{*procedure_, *procedure_};
93 this->link_to_cursors(&loop_begin);
97 loop.
begin = &loop_begin;
105 this->link_to_cursors(loop.
begin);
112 this->link_to_cursors(loop.
end);
constexpr Span drop_front(int64_t n) const
constexpr const T & first() const
constexpr bool is_empty() const
void append(const T &value)
void set_condition(MFVariable *variable)
void set_param_variable(int param_index, MFVariable *variable)
void set_params(Span< MFVariable * > variables)
void set_variable(MFVariable *variable)
MFDataType data_type() const
InterfaceType interface_type() const
void add_loop_continue(Loop &loop)
MFCallInstruction & add_call_with_all_variables(const MultiFunction &fn, Span< MFVariable * > param_variables)
MFCallInstruction & add_call_with_no_variables(const MultiFunction &fn)
Branch add_branch(MFVariable &condition)
MFReturnInstruction & add_return()
void add_destruct(MFVariable &variable)
void add_loop_break(Loop &loop)
Vector< MFVariable * > add_call(const MultiFunction &fn, Span< MFVariable * > input_and_mutable_variables={})
MFBranchInstruction & new_branch_instruction()
MFDummyInstruction & new_dummy_instruction()
MFReturnInstruction & new_return_instruction()
MFCallInstruction & new_call_instruction(const MultiFunction &fn)
MFDestructInstruction & new_destruct_instruction()
MFVariable & new_variable(MFDataType data_type, std::string name="")
StringRefNull param_name(int param_index) const
MFParamType param_type(int param_index) const
IndexRange param_indices() const