144 outline2(
"; variable_add_inplace_vars( , %s, %s )", _variable, _expression );
148 if ( _limit_lower ) {
150 outline2(
"; variable_less_than( , %s, %s, 0 )", _variable, _limit_lower );
156 outline2(
"; variable_move( , %s, %s )", _limit_upper, _variable );
166 cpu_label( _environment, greaterThanLabel );
168 if ( _limit_upper ) {
198 if ( _limit_lower ) {
217 cpu_label( _environment, greaterThanLabel );
219 if ( _limit_upper ) {
248void add_complex_mt(
Environment * _environment,
char * _variable,
char * _expression,
char * _limit_lower,
char * _limit_upper,
int _clamp ) {
297 outline0(
"; variable_move_from_array_type" );
303 outline0(
"; variable_move_array_type" );
308void add_complex(
Environment * _environment,
char * _variable,
int _expression,
int _limit_lower,
int _limit_upper,
int _clamp ) {
330 cpu_label( _environment, greaterThanLabel );
346void add_complex_type(
Environment * _environment,
char * _variable,
char * _field,
int _expression,
int _limit_lower,
int _limit_upper,
int _clamp ) {
373 cpu_label( _environment, greaterThanLabel );
void cpu_bveq(Environment *_environment, char *_value, char *_label)
void cpu_label(Environment *_environment, char *_label)
void cpu_jump(Environment *_environment, char *_label)
void cpu_bvneq(Environment *_environment, char *_value, char *_label)
Variable * variable_retrieve(Environment *_environment, char *_name)
void variable_add_inplace(Environment *_environment, char *_source, int _destination)
void parser_array_index_symbolic(Environment *_environment, char *_index)
Variable * variable_less_than_const(Environment *_environment, char *_source, int _destination, int _equal)
void variable_add_inplace_type(Environment *_environment, char *_source, char *_field, int _destination)
void parser_array_cleanup(Environment *_environment)
void variable_move_array(Environment *_environment, char *_array, char *_value)
Variable * variable_store_type(Environment *_environment, char *_destination, char *_field, unsigned int _value)
Variable * variable_less_than(Environment *_environment, char *_source, char *_destination, int _equal)
Compare two variable and return the result of comparation.
Variable * variable_greater_than(Environment *_environment, char *_source, char *_destination, int _equal)
Compare two variable and return the result of comparation.
Variable * variable_move(Environment *_environment, char *_source, char *_destination)
Store the value of a variable inside another variable by converting it.
Variable * variable_move_from_array(Environment *_environment, char *_array)
void variable_add_inplace_type_vars(Environment *_environment, char *_source, char *_field, char *_destination)
void variable_move_array_type(Environment *_environment, char *_array, char *_field, char *_value)
void variable_add_inplace_vars(Environment *_environment, char *_source, char *_destination)
Add two variable and return the sum of them on the first.
Field * field_find(Type *_type, char *_name)
void parser_array_init(Environment *_environment)
Variable * variable_temporary(Environment *_environment, VariableType _type, char *_meaning)
Define a temporary variable.
Variable * variable_store(Environment *_environment, char *_destination, unsigned int _value)
Store a direct value to a variable.
Variable * variable_move_from_array_type(Environment *_environment, char *_array, char *_field)
void variable_move_type(Environment *_environment, char *_type, char *_field, char *_value)
void add_complex_mt(Environment *_environment, char *_variable, char *_expression, char *_limit_lower, char *_limit_upper, int _clamp)
Emit code for ADD x,y,a TO b.
void add_complex(Environment *_environment, char *_variable, int _expression, int _limit_lower, int _limit_upper, int _clamp)
void add_complex_vars(Environment *_environment, char *_variable, char *_expression, char *_limit_lower, char *_limit_upper, int _clamp)
Emit code for ADD x,y,a TO b.
void add_complex_array(Environment *_environment, char *_variable, char *_expression, char *_limit_lower, char *_limit_upper, int _clamp)
Emit code for ADD x,y,a TO b.
void add_complex_type_vars(Environment *_environment, char *_variable, char *_field, char *_expression, char *_limit_lower, char *_limit_upper, int _clamp)
void add_complex_type(Environment *_environment, char *_variable, char *_field, int _expression, int _limit_lower, int _limit_upper, int _clamp)
void add_complex_array_type(Environment *_environment, char *_variable, char *_field, char *_expression, char *_limit_lower, char *_limit_upper, int _clamp)
#define MAX_TEMPORARY_STORAGE
#define CRITICAL_NOT_ARRAY(v)
struct _Variable Variable
Structure of a single variable.
#define outline2(s, a, b)
struct _Environment Environment
Structure of compilation environment.