void term(int n) /* n은 우선 순위 */ { TknKind op; if (n == 7) { factor(); return; } term(n+1); while (n == opOrder(code.kind)) { /* 우선 순위가 같은 연산자가 연속된다 */ op = code.kind; code = nextCode(); term(n+1); if (syntaxChk_mode) { stk.pop(); stk.pop(); stk.push(1.0); } /* 구문 chk 시 */ else binaryExpr(op); } }
void ExprAssembler::visitEAdd(EAdd* p) { binaryExpr(p->expr_1, p->expr_2, p->addop_); }
void ExprAssembler::visitEMul(EMul* p) { binaryExpr(p->expr_1, p->expr_2, p->mulop_); };