63 if ( strcmp(
loop->index->name, index->
name ) ) {
95 if ( !
loop->statical ) {
96 cpu_call( _environment, beginForFromPrepare );
97 cpu_call( _environment, beginForToPrepare );
98 cpu_call( _environment, beginForStepPrepare );
113 if (
loop->from->initializedByConstant ) {
162 yield( _environment );
170 loop->to->locked = 0;
173 loop->from->locked = 0;
176 loop->step->locked = 0;
179 loop->zero->locked = 0;
181 if (
loop->toResident ) {
182 loop->toResident->locked = 0;
184 if (
loop->fromResident ) {
185 loop->fromResident->locked = 0;
187 if (
loop->stepResident ) {
188 loop->stepResident->locked = 0;
void cpu_label(Environment *_environment, char *_label)
void cpu_call(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)
void parser_array_cleanup(Environment *_environment)
void variable_move_array(Environment *_environment, char *_array, char *_value)
void variable_compare_and_branch_const(Environment *_environment, char *_source, int _destination, char *_name, int _positive)
Variable * variable_move_from_array(Environment *_environment, char *_array)
void variable_add_inplace_vars(Environment *_environment, char *_source, char *_destination)
Add two variable and return the sum of them on the first.
void parser_array_init(Environment *_environment)
Variable * variable_compare(Environment *_environment, char *_source, char *_destination)
Compare two variable and return the result of comparation.
Variable * variable_compare_const(Environment *_environment, char *_source, int _destination)
Compare two variable and return the result of comparation.
void end_for_identifier(Environment *_environment, char *_index)
Emit ASM code for ... NEXT.
void end_for(Environment *_environment)
int initializedByConstant
#define CRITICAL_WRONG_NEXT_INDEX(v)
#define MAX_TEMPORARY_STORAGE
void loop(Environment *_environment, char *_label)
#define CRITICAL_NOT_ARRAY(v)
struct _Variable Variable
Structure of a single variable.
struct _Environment Environment
Structure of compilation environment.
#define CRITICAL_NEXT_WITHOUT_FOR()
struct _Loop Loop
Structure of a single loop.
void yield(Environment *_environment)
Emit code for YIELD.