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!!!


parrot