148 if ( strcmp( procedure->
name, _name ) == 0 ) {
151 procedure = procedure->
next;
164 int realParametersCount = 0;
166 for(
int i=0; i<procedure->
parameters; ++i ) {
168 ++realParametersCount;
181 if ( _environment->
parameters != realParametersCount ) {
185 if ( procedure->
system ) {
193 for(
int i=0; i<procedure->
returns; ++i ) {
void cpu_set_asmio_indirect(Environment *_environment, int _asmio, char *_value)
void cpu_get_asmio_indirect(Environment *_environment, int _asmio, char *_value)
void cpu_call(Environment *_environment, char *_label)
void cpu_set_asmio(Environment *_environment, int _asmio, int _value)
void cpu_jump(Environment *_environment, char *_label)
Variable * variable_retrieve(Environment *_environment, char *_name)
Variable * variable_retrieve_or_define(Environment *_environment, char *_name, VariableType _type, int _value)
Variable * variable_move(Environment *_environment, char *_source, char *_destination)
Store the value of a variable inside another variable by converting it.
Variable * variable_define(Environment *_environment, char *_name, VariableType _type, int _value)
Define a variable for the program.
Variable * variable_store(Environment *_environment, char *_destination, unsigned int _value)
Store a direct value to a variable.
void sys_call(Environment *_environment, int _address)
void call_procedure(Environment *_environment, char *_name)
Emit code for CALL/PROC ....
char * parametersEach[MAX_PARAMETERS]
int parametersValueEach[MAX_PARAMETERS]
char * parametersEach[MAX_PARAMETERS]
int returnsAsmioEach[MAX_PARAMETERS]
VariableType parametersTypeEach[MAX_PARAMETERS]
int parametersValueEach[MAX_PARAMETERS]
VariableType returnsTypeEach[MAX_PARAMETERS]
int parametersAsmioEach[MAX_PARAMETERS]
char * returnsEach[MAX_PARAMETERS]
#define MAX_TEMPORARY_STORAGE
struct _Variable Variable
Structure of a single variable.
#define CRITICAL_PROCEDURE_MISSING(n)
struct _Environment Environment
Structure of compilation environment.
#define CRITICAL_PARALLEL_PROCEDURE_CANNOT_BE_CALLED(c)
#define CRITICAL_PROCEDURE_PARAMETERS_MISMATCH(n, d1, d2)
struct _Procedure Procedure