NAME

languages/cola/gen.c

DESCRIPTION

Intermediate code generation routines.

Functions

void gen_ast(AST *ast)
RT#48200: Not yet documented!!!
void gen_namespace_decl(AST *p)
RT#48200: Not yet documented!!!
void gen_class_decl(AST *p)
RT#48200: Not yet documented!!!
void gen_class_body(AST *p)
RT#48200: Not yet documented!!!
void gen_constant_decl(AST *p)
RT#48200: Not yet documented!!!
void gen_field_decl(AST *p)
RT#48200: Not yet documented!!!
void gen_block(AST *p)
RT#48200: Not yet documented!!!
void gen_statement(AST *p)
RT#48200: Not yet documented!!!
void gen_var_decl(AST *p)
RT#48200: Not yet documented!!!
void gen_param_list(Symbol *paramlist)
RT#48200: Not yet documented!!!
void gen_method_decl(AST *p)
RT#48200: Not yet documented!!!
void gen_assign(AST *ast)
RT#48200: Not yet documented!!!
void gen_expr(AST *p, Symbol *lval, Type *type)
If lval is passed, expressions use that as the target, otherwise they create a temporary.
void gen_arg_list_expr(AST *p)
RT#48200: Not yet documented!!!
void gen_arg_list(AST *p)
Generate arguments in reverse order on stack.
void gen_method_call(AST *p)
RT#48200: Not yet documented!!!
void gen_if(AST *p)
RT#48200: Not yet documented!!!
void gen_while(AST *p)
RT#48200: Not yet documented!!!
void gen_for(AST *p)
RT#48200: Not yet documented!!!
void gen_boolean(AST *p, const char *true_label, const char *false_label, int invert)
boolean->arg1 points to the actual expression, boolean just converts to true/false The invert arg is for generating the branches depending on if we are generating a simple logical or compound for lazy evaluation.
void coerce_operands(Type ** t1, Type ** t2)
RT#48200: Not yet documented!!!
char *op_name(int operator)
RT#48200: Not yet documented!!!
int op_inverse(int operator)
RT#48200: Not yet documented!!!
char *new_itemp()
RT#48200: Not yet documented!!!
char *new_ntemp()
RT#48200: Not yet documented!!!
char *new_stemp()
RT#48200: Not yet documented!!!
char *new_ptemp()
RT#48200: Not yet documented!!!
Symbol *new_temp(Type *type)
Create a temporary rval
void reset_temps()
RT#48200: Not yet documented!!!
char *get_label()
RT#48200: Not yet documented!!!
char *make_label()
RT#48200: Not yet documented!!!
void emit_op_expr(Symbol *r, Symbol *a1, char *op, Symbol *a2)
RT#48200: Not yet documented!!!
void emit_unary_expr(Symbol *res, Symbol *arg1, char *op)
RT#48200: Not yet documented!!!