124 memset(procedure, 0,
sizeof(
Procedure ) );
126 procedure->
name = strdup( _name );
128 memset(procedure->
realName, 0, strlen( _name ) + 6 );
130 strcat( procedure->
realName, _name );
158 cpu_jump( _environment, procedureAfterLabel );
165 cpu_jump( _environment, procedureParallelDispatch );
166 yield( _environment );
void cpu_label(Environment *_environment, char *_label)
void cpu_jump(Environment *_environment, char *_label)
int variable_exists(Environment *_environment, char *_name)
Variable * variable_define(Environment *_environment, char *_name, VariableType _type, int _value)
Define a variable for the program.
void begin_procedure(Environment *_environment, char *_name)
Emit code for PROCEDURE ... END PROC.
char * parametersEach[MAX_PARAMETERS]
Variable * procedureVariables
VariableType parametersTypeEach[MAX_PARAMETERS]
char * parametersEach[MAX_PARAMETERS]
VariableType parametersTypeEach[MAX_PARAMETERS]
#define MAX_TEMPORARY_STORAGE
struct _Variable Variable
Structure of a single variable.
struct _Environment Environment
Structure of compilation environment.
#define CRITICAL_PROCEDURE_NESTED_UNSUPPORTED(n)
enum _VariableType VariableType
Type of variables.
struct _Procedure Procedure
#define CRITICAL_PROCEDURE_DUPLICATE_PARAMETER(p, v)
char * strcopy(char *_dest, char *_source)
void yield(Environment *_environment)
Emit code for YIELD.