MXVM 1.8.1
Virtual Machine, Compiler, and Pascal Frontend
Loading...
Searching...
No Matches
mxvm::Variable Struct Reference

A named variable with type, value, and optional object association. More...

#include <instruct.hpp>

Public Member Functions

 Variable ()
 Default constructor — VAR_NULL type with empty name and value.
 Variable (const std::string &name, const VarType &vtype, const Variable_Value &value)
 Construct a variable with the given name, type, and initial value.
 Variable (const Variable &v)
 Copy constructor.
void setExtern (std::string name, void *value)
 Configure this variable as an external pointer reference.
Variable & operator= (const Variable &v)
 Copy-assignment operator.
std::string toString () const
 Convert this variable to a human-readable string.

Public Attributes

VarType type
std::string var_name
Variable_Value var_value
bool is_global = false
std::string obj_name

Detailed Description

A named variable with type, value, and optional object association.

Definition at line 292 of file instruct.hpp.

Constructor & Destructor Documentation

◆ Variable() [1/3]

mxvm::Variable::Variable ( )
inline

Default constructor — VAR_NULL type with empty name and value.

Definition at line 299 of file instruct.hpp.

References type, var_name, and var_value.

Referenced by Variable(), and operator=().

◆ Variable() [2/3]

mxvm::Variable::Variable ( const std::string & name,
const VarType & vtype,
const Variable_Value & value )
inline

Construct a variable with the given name, type, and initial value.

Parameters
nameVariable identifier
vtypeVariable type discriminator
valueInitial runtime value

Definition at line 306 of file instruct.hpp.

References is_global, type, var_name, and var_value.

◆ Variable() [3/3]

mxvm::Variable::Variable ( const Variable & v)
inline

Copy constructor.

Parameters
vSource variable to copy

Definition at line 312 of file instruct.hpp.

References Variable(), is_global, obj_name, type, var_name, and var_value.

Member Function Documentation

◆ operator=()

Variable & mxvm::Variable::operator= ( const Variable & v)
inline

Copy-assignment operator.

Parameters
vSource variable to copy
Returns
Reference to this

Definition at line 333 of file instruct.hpp.

References Variable(), is_global, obj_name, type, var_name, and var_value.

◆ setExtern()

void mxvm::Variable::setExtern ( std::string name,
void * value )
inline

Configure this variable as an external pointer reference.

Parameters
nameExternal variable name
valuePointer to the external data

Definition at line 319 of file instruct.hpp.

References type, mxvm::VAR_EXTERN, var_name, and var_value.

Referenced by mxvm::Program::add_standard().

◆ toString()

std::string mxvm::Variable::toString ( ) const

Convert this variable to a human-readable string.

Returns
Formatted string describing the variable name, type, and value

Definition at line 90 of file instruct.cpp.

References type.

Referenced by mxvm::Program::exec_cmp().

Member Data Documentation

◆ is_global

bool mxvm::Variable::is_global = false

◆ obj_name

std::string mxvm::Variable::obj_name

Definition at line 297 of file instruct.hpp.

Referenced by Variable(), mxvm::Program::getMangledName(), and operator=().

◆ type

VarType mxvm::Variable::type

Definition at line 293 of file instruct.hpp.

Referenced by Variable(), Variable(), Variable(), mxvm::Program::addVariables(), asReadPtr(), asWritePtr(), mxvm::Program::createTempVariable(), mxvm::Program::divVariables(), mxvm::Program::exec_add(), mxvm::Program::exec_alloc(), mxvm::Program::exec_cmp(), mxvm::Program::exec_div(), mxvm::Program::exec_fcmp(), mxvm::Program::exec_free(), mxvm::Program::exec_getline(), mxvm::Program::exec_invoke(), mxvm::Program::exec_lea(), mxvm::Program::exec_load(), mxvm::Program::exec_mod(), mxvm::Program::exec_mov(), mxvm::Program::exec_mul(), mxvm::Program::exec_neg(), mxvm::Program::exec_pop(), mxvm::Program::exec_print(), mxvm::Program::exec_realloc(), mxvm::Program::exec_return(), mxvm::Program::exec_stack_load(), mxvm::Program::exec_stack_store(), mxvm::Program::exec_store(), mxvm::Program::exec_string_print(), mxvm::Program::exec_sub(), mxvm::Program::exec_to_float(), mxvm::Program::exec_to_int(), mxvm::Program::gen_alloc(), mxvm::Program::gen_arth(), mxvm::Program::gen_bitop(), mxvm::Program::gen_cmp(), mxvm::Program::gen_div(), mxvm::Program::gen_free(), mxvm::Program::gen_getline(), mxvm::Program::gen_load(), mxvm::Program::gen_mod(), mxvm::Program::gen_mov(), mxvm::Program::gen_neg(), mxvm::Program::gen_not(), mxvm::Program::gen_pop(), mxvm::Program::gen_print(), mxvm::Program::gen_push(), mxvm::Program::gen_realloc(), mxvm::Program::gen_return(), mxvm::Program::gen_stack_load(), mxvm::Program::gen_stack_store(), mxvm::Program::gen_store(), mxvm::Program::gen_to_float(), mxvm::Program::gen_to_int(), mxvm::Program::generateLoadVar(), mxvm::Program::generateLoadVar(), getStringFromVar(), isStringLike(), mxvm::Program::mulVariables(), mxvm_io_fclose(), mxvm_io_feof(), mxvm_io_fopen(), mxvm_io_fprintf(), mxvm_io_fputs(), mxvm_io_fread(), mxvm_io_fseek(), mxvm_io_fsize(), mxvm_io_fwrite(), mxvm_io_mxvm_fgets(), mxvm_io_rand_number(), mxvm_sdl_create_window(), mxvm_sdl_draw_text(), mxvm_sdl_get_keyboard_state(), mxvm_sdl_get_mouse_state(), mxvm_sdl_get_relative_mouse_state(), mxvm_sdl_get_renderer_output_size(), mxvm_sdl_get_window_size(), mxvm_sdl_load_font(), mxvm_sdl_load_texture(), mxvm_sdl_load_texture_color_key(), mxvm_sdl_load_texture_color_key_rgb(), mxvm_sdl_load_wav(), mxvm_sdl_lock_texture(), mxvm_sdl_queue_audio(), mxvm_sdl_set_clipboard_text(), mxvm_sdl_set_window_icon(), mxvm_sdl_set_window_title(), mxvm_sdl_update_texture(), mxvm_std_argv(), mxvm_std_atof(), mxvm_std_atoi(), mxvm_std_ceil(), mxvm_std_cos(), mxvm_std_fabs(), mxvm_std_float_to_int(), mxvm_std_floor(), mxvm_std_int_to_float(), mxvm_std_memcmp(), mxvm_std_memcpy(), mxvm_std_memmove(), mxvm_std_memset(), mxvm_std_pow(), mxvm_std_release(), mxvm_std_set_program_args(), mxvm_std_sin(), mxvm_std_sqrt(), mxvm_std_system(), mxvm_std_tan(), mxvm_string_snprintf(), mxvm_string_strcmp(), mxvm_string_strlen(), mxvm_string_strncat(), mxvm_string_strncpy(), mxvm_string_substr(), operator=(), mxvm::Program::printFormatted(), mxvm::releaseOwnedPointer(), setExtern(), mxvm::Program::setVariableFromConstant(), mxvm::Program::setVariableFromString(), mxvm::Program::subVariables(), mxvm::Program::sysv_analyzeRegAlloc(), toString(), mxvm::Program::x64_analyzeRegAlloc(), mxvm::Program::x64_gen_alloc(), mxvm::Program::x64_gen_arth(), mxvm::Program::x64_gen_bitop(), mxvm::Program::x64_gen_cmp(), mxvm::Program::x64_gen_div(), mxvm::Program::x64_gen_free(), mxvm::Program::x64_gen_getline(), mxvm::Program::x64_gen_load(), mxvm::Program::x64_gen_mod(), mxvm::Program::x64_gen_mov(), mxvm::Program::x64_gen_neg(), mxvm::Program::x64_gen_not(), mxvm::Program::x64_gen_pop(), mxvm::Program::x64_gen_push(), mxvm::Program::x64_gen_realloc(), mxvm::Program::x64_gen_store(), mxvm::Program::x64_generateFunctionCall(), mxvm::Program::x64_generateLoadVar(), and mxvm::Program::x64_generateLoadVar().

◆ var_name

◆ var_value

Variable_Value mxvm::Variable::var_value

Definition at line 295 of file instruct.hpp.

Referenced by Variable(), Variable(), Variable(), mxvm::Program::addVariables(), asReadPtr(), asWritePtr(), mxvm::Program::createTempVariable(), mxvm::Program::divVariables(), mxvm::Program::exec_alloc(), mxvm::Program::exec_and(), mxvm::Program::exec_cmp(), mxvm::Program::exec_exit(), mxvm::Program::exec_fcmp(), mxvm::Program::exec_free(), mxvm::Program::exec_getline(), mxvm::Program::exec_invoke(), mxvm::Program::exec_lea(), mxvm::Program::exec_load(), mxvm::Program::exec_mod(), mxvm::Program::exec_mov(), mxvm::Program::exec_neg(), mxvm::Program::exec_not(), mxvm::Program::exec_or(), mxvm::Program::exec_pop(), mxvm::Program::exec_print(), mxvm::Program::exec_push(), mxvm::Program::exec_realloc(), mxvm::Program::exec_return(), mxvm::Program::exec_stack_load(), mxvm::Program::exec_stack_store(), mxvm::Program::exec_stack_sub(), mxvm::Program::exec_store(), mxvm::Program::exec_string_print(), mxvm::Program::exec_to_float(), mxvm::Program::exec_to_int(), mxvm::Program::exec_xor(), mxvm::Program::gen_alloc(), mxvm::Program::gen_free(), mxvm::Program::gen_getline(), mxvm::Program::gen_lea(), mxvm::Program::gen_realloc(), mxvm::Program::gen_return(), mxvm::Program::gen_store(), getStringFromVar(), mxvm::Program::mulVariables(), mxvm_io_fclose(), mxvm_io_feof(), mxvm_io_fopen(), mxvm_io_fprintf(), mxvm_io_fputs(), mxvm_io_fread(), mxvm_io_fseek(), mxvm_io_fsize(), mxvm_io_fwrite(), mxvm_io_mxvm_fgets(), mxvm_io_rand_number(), mxvm_sdl_blit_surface(), mxvm_sdl_clear(), mxvm_sdl_create_render_target(), mxvm_sdl_create_renderer(), mxvm_sdl_create_rgb_surface(), mxvm_sdl_create_texture(), mxvm_sdl_create_window(), mxvm_sdl_delay(), mxvm_sdl_destroy_render_target(), mxvm_sdl_destroy_renderer(), mxvm_sdl_destroy_texture(), mxvm_sdl_destroy_window(), mxvm_sdl_draw_line(), mxvm_sdl_draw_point(), mxvm_sdl_draw_rect(), mxvm_sdl_draw_text(), mxvm_sdl_fill_rect(), mxvm_sdl_free_surface(), mxvm_sdl_free_wav(), mxvm_sdl_get_keyboard_state(), mxvm_sdl_get_mouse_state(), mxvm_sdl_get_relative_mouse_state(), mxvm_sdl_get_renderer_output_size(), mxvm_sdl_get_window_size(), mxvm_sdl_is_key_pressed(), mxvm_sdl_load_font(), mxvm_sdl_load_texture(), mxvm_sdl_load_texture_color_key(), mxvm_sdl_load_texture_color_key_rgb(), mxvm_sdl_load_wav(), mxvm_sdl_lock_texture(), mxvm_sdl_open_audio(), mxvm_sdl_pause_audio(), mxvm_sdl_present(), mxvm_sdl_present_scaled(), mxvm_sdl_present_stretched(), mxvm_sdl_queue_audio(), mxvm_sdl_render_texture(), mxvm_sdl_set_clipboard_text(), mxvm_sdl_set_draw_color(), mxvm_sdl_set_render_target(), mxvm_sdl_set_window_fullscreen(), mxvm_sdl_set_window_icon(), mxvm_sdl_set_window_position(), mxvm_sdl_set_window_title(), mxvm_sdl_show_cursor(), mxvm_sdl_unlock_texture(), mxvm_sdl_update_texture(), mxvm_std_abs(), mxvm_std_acos(), mxvm_std_argv(), mxvm_std_asin(), mxvm_std_atan(), mxvm_std_atan2(), mxvm_std_atof(), mxvm_std_atoi(), mxvm_std_calloc(), mxvm_std_ceil(), mxvm_std_cos(), mxvm_std_cosh(), mxvm_std_exit(), mxvm_std_exp(), mxvm_std_exp2(), mxvm_std_fabs(), mxvm_std_float_to_int(), mxvm_std_floor(), mxvm_std_fmod(), mxvm_std_hypot(), mxvm_std_int_to_float(), mxvm_std_isalpha(), mxvm_std_isdigit(), mxvm_std_isspace(), mxvm_std_log(), mxvm_std_log10(), mxvm_std_log2(), mxvm_std_malloc(), mxvm_std_memcmp(), mxvm_std_memcpy(), mxvm_std_memmove(), mxvm_std_memset(), mxvm_std_pow(), mxvm_std_release(), mxvm_std_round(), mxvm_std_set_program_args(), mxvm_std_sin(), mxvm_std_sinh(), mxvm_std_sqrt(), mxvm_std_srand(), mxvm_std_system(), mxvm_std_tan(), mxvm_std_tanh(), mxvm_std_tolower(), mxvm_std_toupper(), mxvm_std_trunc(), mxvm_string_copy(), mxvm_string_delete(), mxvm_string_insert(), mxvm_string_inttostr(), mxvm_string_snprintf(), mxvm_string_strat(), mxvm_string_strcmp(), mxvm_string_strfind(), mxvm_string_strlen(), mxvm_string_strncat(), mxvm_string_strncpy(), mxvm_string_substr(), operator=(), mxvm::Program::printFormatted(), mxvm::releaseOwnedPointer(), setExtern(), mxvm::Program::setVariableFromConstant(), mxvm::Program::setVariableFromString(), mxvm::Program::subVariables(), mxvm::Program::x64_gen_alloc(), mxvm::Program::x64_gen_free(), mxvm::Program::x64_gen_getline(), mxvm::Program::x64_gen_lea(), mxvm::Program::x64_gen_load(), mxvm::Program::x64_gen_mov(), mxvm::Program::x64_gen_realloc(), mxvm::Program::x64_gen_return(), and mxvm::Program::x64_gen_store().


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