示例#1
0
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_);
};