Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
#include #include #include "ast.h" /* utility functions */ void *checked_malloc(int i) { void *p = malloc(i); assert(p != NULL); return p; } char *strsave(char* s) { char *r = checked_malloc(strlen(s) + 1); strcpy(r,s); return r; } /* AST constuctor functions */ Exp mk_VarExp(id i) { Exp e = checked_malloc(sizeof(*e)); e->kind = VarExp; e->u.varexp.i = i; return e; } Exp mk_ConstExp(int n) { Exp e = checked_malloc(sizeof(*e)); e->kind = ConstExp; e->u.constexp.n = n; return e; } Exp mk_PlusExp(Exp l, Exp r) { Exp e = checked_malloc(sizeof(*e)); e->kind = PlusExp; e->u.plusexp.l = l; e->u.plusexp.r = r; return e; } Exp mk_MinusExp(Exp l, Exp r) { Exp e = checked_malloc(sizeof(*e)); e->kind = MinusExp; e->u.minusexp.l = l; e->u.minusexp.r = r; return e; } Exp mk_AsgnExp(id i, Exp e) { Exp e0 = checked_malloc(sizeof(*e)); e0->kind = AsgnExp; e0->u.asgnexp.i = i; e0->u.asgnexp.e = e; return e0; } Exp mk_If0Exp(Exp e, Exp t, Exp f) { Exp e0 = checked_malloc(sizeof(*e0)); e0->kind = If0Exp; e0->u.if0exp.e = e; e0->u.if0exp.t = t; e0->u.if0exp.f = f; return e0; } Exp mk_BlockExp(ids is, Exps es) { Exp e = checked_malloc(sizeof(*e)); e->kind = BlockExp; e->u.blockexp.is = is; e->u.blockexp.es = es; return e; } Exps mk_Exps(Exp e, Exps next) { Exps es0 = checked_malloc(sizeof(*es0)); es0->e = e; es0->next = next; return es0; } ids mk_ids(id i, ids next) { ids is0 = checked_malloc(sizeof(*is0)); is0->i = i; is0->next = next; return is0; }