73 yield( _environment );
86 cpu_label( _environment, protothreadLabel );
131 yield( _environment );
144 cpu_label( _environment, protothreadLabel );
void cpu_protothread_save(Environment *_environment, char *_index, int _step)
void cpu_protothread_set_state(Environment *_environment, char *_index, int _state)
void cpu_label(Environment *_environment, char *_label)
void cpu_return(Environment *_environment)
void cpu_busy_wait(Environment *_environment, char *_timing)
Variable * variable_retrieve(Environment *_environment, char *_name)
void variable_compare_and_branch_const(Environment *_environment, char *_source, int _destination, char *_name, int _positive)
Variable * variable_array_type(Environment *_environment, char *_name, VariableType _type)
Variable * variable_move_from_mt(Environment *_environment, char *_source, char *_destination)
Increment a variable by one.
void variable_store_array_const(Environment *_environment, char *_array, int _value)
Variable * variable_define(Environment *_environment, char *_name, VariableType _type, int _value)
Define a variable for the program.
Variable * variable_move_to_mt(Environment *_environment, char *_source, char *_destination)
Variable * variable_temporary(Environment *_environment, VariableType _type, char *_meaning)
Define a temporary variable.
void variable_decrement_mt(Environment *_environment, char *_source)
Decrement a variable by one.
void wait_cycles_var(Environment *_environment, char *_timing, int _parallel)
Emit ASM code for WAIT [expression] CYCLES.
void wait_cycles(Environment *_environment, int _timing, int _parallel)
Emit ASM code for WAIT # [integer] CYCLES.
Structure of compilation environment.
int arrayDimensionsEach[MAX_ARRAY_DIMENSIONS]
ProtothreadConfig protothreadConfig
#define MAX_TEMPORARY_STORAGE
#define MAX_ARRAY_DIMENSIONS
struct _Variable Variable
Structure of a single variable.
struct _Environment Environment
Structure of compilation environment.
#define PROTOTHREAD_STATUS_YIELDED
#define CRITICAL_WAIT_CYCLES_PARALLEL_CANNOT_BE_CALLED_OUTSIDE_PROCEDURE()
#define CRITICAL_MULTITASKING_FORBIDDEN()
#define PROTOTHREAD_STATUS_RUNNING
void yield(Environment *_environment)
Emit code for YIELD.