📄 tree.c
字号:
EXP *makeEXPintconst(int intconst){ EXP *e; e = NEW(EXP); e->lineno = lineno; e->tostring = 0; e->kind = intconstK; e->val.intconstE = intconst; return e;}EXP *makeEXPboolconst(int boolconst){ EXP *e; e = NEW(EXP); e->lineno = lineno; e->tostring = 0; e->kind = boolconstK; e->val.boolconstE = boolconst; return e;}EXP *makeEXPcharconst(char charconst){ EXP *e; e = NEW(EXP); e->lineno = lineno; e->tostring = 0; e->kind = charconstK; e->val.charconstE = charconst; return e;}EXP *makeEXPstringconst(char *stringconst){ EXP *e; e = NEW(EXP); e->lineno = lineno; e->tostring = 0; e->kind = stringconstK; e->val.stringconstE = stringconst; return e;}EXP *makeEXPnull(){ EXP *e; e = NEW(EXP); e->lineno = lineno; e->tostring = 0; e->kind = nullK; return e;}EXP *makeEXPcast(char *left, EXP *right){ EXP *e; e = NEW(EXP); e->lineno = lineno; e->tostring = 0; e->kind = castK; e->val.castE.left = left; e->val.castE.right = right; return e;}EXP *makeEXPcharcast(EXP *charcast){ EXP *e; e = NEW(EXP); e->lineno = lineno; e->tostring = 0; e->kind = charcastK; e->val.charcastE = charcast; return e;}RECEIVER *makeRECEIVERobject(EXP *object){ RECEIVER *r; r = NEW(RECEIVER); r->lineno = lineno; r->kind = objectK; r->objectR = object; return r;}RECEIVER *makeRECEIVERsuper(){ RECEIVER *r; r = NEW(RECEIVER); r->lineno = lineno; r->kind = superK; return r;}ARGUMENT *makeARGUMENT(EXP *exp, ARGUMENT *next){ ARGUMENT *a; a = NEW(ARGUMENT); a->exp = exp; a->next = next; return a;}CODE *makeCODEnop(CODE *next){ CODE *c; c = NEW(CODE); c->kind = nopCK; c->visited = 0; c->next = next; return c;}CODE *makeCODEi2c(CODE *next){ CODE *c; c = NEW(CODE); c->kind = i2cCK; c->visited = 0; c->next = next; return c;} CODE *makeCODEnew(char *arg, CODE *next){ CODE *c; c = NEW(CODE); c->kind = newCK; c->visited = 0; c->val.newC = arg; c->next = next; return c;} CODE *makeCODEinstanceof(char *arg, CODE *next){ CODE *c; c = NEW(CODE); c->kind = instanceofCK; c->visited = 0; c->val.instanceofC = arg; c->next = next; return c;}CODE *makeCODEcheckcast(char *arg, CODE *next){ CODE *c; c = NEW(CODE); c->kind = checkcastCK; c->visited = 0; c->val.checkcastC = arg; c->next = next; return c;} CODE *makeCODEimul(CODE *next){ CODE *c; c = NEW(CODE); c->kind = imulCK; c->visited = 0; c->next = next; return c;} CODE *makeCODEineg(CODE *next){ CODE *c; c = NEW(CODE); c->kind = inegCK; c->visited = 0; c->next = next; return c;} CODE *makeCODEirem(CODE *next){ CODE *c; c = NEW(CODE); c->kind = iremCK; c->visited = 0; c->next = next; return c;} CODE *makeCODEisub(CODE *next){ CODE *c; c = NEW(CODE); c->kind = isubCK; c->visited = 0; c->next = next; return c;}CODE *makeCODEidiv(CODE *next){ CODE *c; c = NEW(CODE); c->kind = idivCK; c->visited = 0; c->next = next; return c;} CODE *makeCODEiadd(CODE *next){ CODE *c; c = NEW(CODE); c->kind = iaddCK; c->visited = 0; c->next = next; return c;}CODE *makeCODEiinc(int offset, int amount, CODE *next){ CODE *c; c = NEW(CODE); c->kind = iincCK; c->visited = 0; c->val.iincC.offset = offset; c->val.iincC.amount = amount; c->next = next; return c;}CODE *makeCODElabel(int label, CODE *next){ CODE *c; c = NEW(CODE); c->kind = labelCK; c->visited = 0; c->val.labelC = label; c->next = next; return c;} CODE *makeCODEgoto(int label, CODE *next){ CODE *c; c = NEW(CODE); c->kind = gotoCK; c->visited = 0; c->val.gotoC = label; c->next = next; return c;} CODE *makeCODEifeq(int label, CODE *next){ CODE *c; c = NEW(CODE); c->kind = ifeqCK; c->visited = 0; c->val.ifeqC = label; c->next = next; return c;} CODE *makeCODEifne(int label, CODE *next){ CODE *c; c = NEW(CODE); c->kind = ifneCK; c->visited = 0; c->val.ifneC = label; c->next = next; return c;} CODE *makeCODEif_acmpeq(int label, CODE *next){ CODE *c; c = NEW(CODE); c->kind = if_acmpeqCK; c->visited = 0; c->val.if_acmpeqC = label; c->next = next; return c;} CODE *makeCODEif_acmpne(int label, CODE *next){ CODE *c; c = NEW(CODE); c->kind = if_acmpneCK; c->visited = 0; c->val.if_acmpneC = label; c->next = next; return c;}CODE *makeCODEifnull(int label, CODE *next){ CODE *c; c = NEW(CODE); c->kind = ifnullCK; c->visited = 0; c->val.ifnullC = label; c->next = next; return c;}CODE *makeCODEifnonnull(int label, CODE *next){ CODE *c; c = NEW(CODE); c->kind = ifnonnullCK; c->visited = 0; c->val.ifnonnullC = label; c->next = next; return c;} CODE *makeCODEif_icmpeq(int label, CODE *next){ CODE *c; c = NEW(CODE); c->kind = if_icmpeqCK; c->visited = 0; c->val.if_icmpeqC = label; c->next = next; return c;} CODE *makeCODEif_icmpgt(int label, CODE *next){ CODE *c; c = NEW(CODE); c->kind = if_icmpgtCK; c->visited = 0; c->val.if_icmpgtC = label; c->next = next; return c;} CODE *makeCODEif_icmplt(int label, CODE *next){ CODE *c; c = NEW(CODE); c->kind = if_icmpltCK; c->visited = 0; c->val.if_icmpltC = label; c->next = next; return c;} CODE *makeCODEif_icmple(int label, CODE *next){ CODE *c; c = NEW(CODE); c->kind = if_icmpleCK; c->visited = 0; c->val.if_icmpleC = label; c->next = next; return c;} CODE *makeCODEif_icmpge(int label, CODE *next){ CODE *c; c = NEW(CODE); c->kind = if_icmpgeCK; c->visited = 0; c->val.if_icmpgeC = label; c->next = next; return c;} CODE *makeCODEif_icmpne(int label, CODE *next){ CODE *c; c = NEW(CODE); c->kind = if_icmpneCK; c->visited = 0; c->val.if_icmpneC = label; c->next = next; return c;} CODE *makeCODEireturn(CODE *next){ CODE *c; c = NEW(CODE); c->kind = ireturnCK; c->visited = 0; c->next = next; return c;} CODE *makeCODEareturn(CODE *next){ CODE *c; c = NEW(CODE); c->kind = areturnCK; c->visited = 0; c->next = next; return c;} CODE *makeCODEreturn(CODE *next){ CODE *c; c = NEW(CODE); c->kind = returnCK; c->visited = 0; c->next = next; return c;} CODE *makeCODEaload(int arg, CODE *next){ CODE *c; c = NEW(CODE); c->kind = aloadCK; c->visited = 0; c->val.aloadC = arg; c->next = next; return c;}CODE *makeCODEastore(int arg, CODE *next){ CODE *c; c = NEW(CODE); c->kind = astoreCK; c->visited = 0; c->val.astoreC = arg; c->next = next; return c;} CODE *makeCODEiload(int arg, CODE *next){ CODE *c; c = NEW(CODE); c->kind = iloadCK; c->visited = 0; c->val.iloadC = arg; c->next = next; return c;} CODE *makeCODEistore(int arg, CODE *next){ CODE *c; c = NEW(CODE); c->kind = istoreCK; c->visited = 0; c->val.istoreC = arg; c->next = next; return c;} CODE *makeCODEdup(CODE *next){ CODE *c; c = NEW(CODE); c->kind = dupCK; c->visited = 0; c->next = next; return c;} CODE *makeCODEpop(CODE *next){ CODE *c; c = NEW(CODE); c->kind = popCK; c->visited = 0; c->next = next; return c;} CODE *makeCODEswap(CODE *next){ CODE *c; c = NEW(CODE); c->kind = swapCK; c->visited = 0; c->next = next; return c;} CODE *makeCODEldc_int(int arg, CODE *next){ CODE *c; c = NEW(CODE); c->kind = ldc_intCK; c->visited = 0; c->val.ldc_intC = arg; c->next = next; return c;} CODE *makeCODEldc_string(char *arg, CODE *next){ CODE *c; c = NEW(CODE); c->kind = ldc_stringCK; c->visited = 0; c->val.ldc_stringC = arg; c->next = next; return c;} CODE *makeCODEaconst_null(CODE *next){ CODE *c; c = NEW(CODE); c->kind = aconst_nullCK; c->visited = 0; c->next = next; return c;} CODE *makeCODEgetfield(char *arg, CODE *next){ CODE *c; c = NEW(CODE); c->kind = getfieldCK; c->visited = 0; c->val.getfieldC = arg; c->next = next; return c;} CODE *makeCODEputfield(char *arg, CODE *next){ CODE *c; c = NEW(CODE); c->kind = putfieldCK; c->visited = 0; c->val.putfieldC = arg; c->next = next; return c;} CODE *makeCODEinvokevirtual(char *arg, CODE *next){ CODE *c; c = NEW(CODE); c->kind = invokevirtualCK; c->visited = 0; c->val.invokevirtualC = arg; c->next = next; return c;}CODE *makeCODEinvokenonvirtual(char *arg, CODE *next){ CODE *c; c = NEW(CODE); c->kind = invokenonvirtualCK; c->visited = 0; c->val.invokenonvirtualC = arg; c->next = next; return c;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -