Пример #1
0
void visitIter_stm(Iter_stm _p_)
{
  switch(_p_->kind)
  {
  case is_SiterOne:
    /* Code for SiterOne Goes Here */
    visitExp(_p_->u.siterone_.exp_);
    visitStm(_p_->u.siterone_.stm_);
    break;  case is_SiterTwo:
    /* Code for SiterTwo Goes Here */
    visitStm(_p_->u.sitertwo_.stm_);
    visitExp(_p_->u.sitertwo_.exp_);
    break;  case is_SiterThree:
    /* Code for SiterThree Goes Here */
    visitExpression_stm(_p_->u.siterthree_.expression_stm_1);
    visitExpression_stm(_p_->u.siterthree_.expression_stm_2);
    visitStm(_p_->u.siterthree_.stm_);
    break;  case is_SiterFour:
    /* Code for SiterFour Goes Here */
    visitExpression_stm(_p_->u.siterfour_.expression_stm_1);
    visitExpression_stm(_p_->u.siterfour_.expression_stm_2);
    visitExp(_p_->u.siterfour_.exp_);
    visitStm(_p_->u.siterfour_.stm_);
    break;
  default:
    fprintf(stderr, "Error: bad kind field when printing Iter_stm!\n");
    exit(1);
  }
}
Пример #2
0
void visitExp(Exp _p_)
{
  switch(_p_->kind)
  {
  case is_EAdd:
    /* Code for EAdd Goes Here */
    visitExp(_p_->u.eadd_.exp_1);
    visitExp(_p_->u.eadd_.exp_2);
    break;
  case is_ESub:
    /* Code for ESub Goes Here */
    visitExp(_p_->u.esub_.exp_1);
    visitExp(_p_->u.esub_.exp_2);
    break;
  case is_EMul:
    /* Code for EMul Goes Here */
    visitExp(_p_->u.emul_.exp_1);
    visitExp(_p_->u.emul_.exp_2);
    break;
  case is_EDiv:
    /* Code for EDiv Goes Here */
    visitExp(_p_->u.ediv_.exp_1);
    visitExp(_p_->u.ediv_.exp_2);
    break;
  case is_EInt:
    /* Code for EInt Goes Here */
    visitInteger(_p_->u.eint_.integer_);
    break;

  default:
    fprintf(stderr, "Error: bad kind field when printing Exp!\n");
    exit(1);
  }
}
Пример #3
0
void visitListExp(ListExp listexp)
{
  while(listexp != 0)
  {
    /* Code For ListExp Goes Here */
    visitExp(listexp->exp_);
    listexp = listexp->listexp_;
  }
}
Пример #4
0
void visitConstant_expression(Constant_expression _p_)
{
  switch(_p_->kind)
  {
  case is_Especial:
    /* Code for Especial Goes Here */
    visitExp(_p_->u.especial_.exp_);
    break;
  default:
    fprintf(stderr, "Error: bad kind field when printing Constant_expression!\n");
    exit(1);
  }
}
Пример #5
0
void visitSelection_stm(Selection_stm _p_)
{
  switch(_p_->kind)
  {
  case is_SselOne:
    /* Code for SselOne Goes Here */
    visitExp(_p_->u.sselone_.exp_);
    visitStm(_p_->u.sselone_.stm_);
    break;  case is_SselTwo:
    /* Code for SselTwo Goes Here */
    visitExp(_p_->u.sseltwo_.exp_);
    visitStm(_p_->u.sseltwo_.stm_1);
    visitStm(_p_->u.sseltwo_.stm_2);
    break;  case is_SselThree:
    /* Code for SselThree Goes Here */
    visitExp(_p_->u.sselthree_.exp_);
    visitStm(_p_->u.sselthree_.stm_);
    break;
  default:
    fprintf(stderr, "Error: bad kind field when printing Selection_stm!\n");
    exit(1);
  }
}
Пример #6
0
void visitExpression_stm(Expression_stm _p_)
{
  switch(_p_->kind)
  {
  case is_SexprOne:
    /* Code for SexprOne Goes Here */
    break;  case is_SexprTwo:
    /* Code for SexprTwo Goes Here */
    visitExp(_p_->u.sexprtwo_.exp_);
    break;
  default:
    fprintf(stderr, "Error: bad kind field when printing Expression_stm!\n");
    exit(1);
  }
}
Пример #7
0
void IRPrinter::visit(Stmt *s)
{
    if (auto e = s->asExp()) {
        visitExp(e);
    } else if (auto m = s->asMove()) {
        visitMove(m);
    } else if (auto j = s->asJump()) {
        visitJump(j);
    } else if (auto c = s->asCJump()) {
        visitCJump(c);
    } else if (auto r = s->asRet()) {
        visitRet(r);
    } else if (auto p = s->asPhi()) {
        visitPhi(p);
    } else {
        Q_UNREACHABLE();
    }
}
Пример #8
0
void visitInitializer(Initializer _p_)
{
  switch(_p_->kind)
  {
  case is_InitExpr:
    /* Code for InitExpr Goes Here */
    visitExp(_p_->u.initexpr_.exp_);
    break;  case is_InitListOne:
    /* Code for InitListOne Goes Here */
    visitInitializers(_p_->u.initlistone_.initializers_);
    break;  case is_InitListTwo:
    /* Code for InitListTwo Goes Here */
    visitInitializers(_p_->u.initlisttwo_.initializers_);
    break;
  default:
    fprintf(stderr, "Error: bad kind field when printing Initializer!\n");
    exit(1);
  }
}
Пример #9
0
void visitJump_stm(Jump_stm _p_)
{
  switch(_p_->kind)
  {
  case is_SjumpFour:
    /* Code for SjumpFour Goes Here */
    break;  case is_SjumpFive:
    /* Code for SjumpFive Goes Here */
    visitExp(_p_->u.sjumpfive_.exp_);
    break;  case is_SjumpOne:
    /* Code for SjumpOne Goes Here */
    visitIdent(_p_->u.sjumpone_.ident_);
    break;  case is_SjumpTwo:
    /* Code for SjumpTwo Goes Here */
    break;  case is_SjumpThree:
    /* Code for SjumpThree Goes Here */
    break;
  default:
    fprintf(stderr, "Error: bad kind field when printing Jump_stm!\n");
    exit(1);
  }
}
Пример #10
0
void visitExp(Exp _p_)
{
  switch(_p_->kind)
  {
  case is_InitClass:
    /* Code for InitClass Goes Here */
    visitExp(_p_->u.initclass_.exp_);
    visitAssignment_op(_p_->u.initclass_.assignment_op_);
    visitClassName(_p_->u.initclass_.classname_);
    break;  case is_DestroyClass:
    /* Code for DestroyClass Goes Here */
    visitIdent(_p_->u.destroyclass_.ident_);
    break;  case is_Eassign:
    /* Code for Eassign Goes Here */
    visitExp(_p_->u.eassign_.exp_1);
    visitAssignment_op(_p_->u.eassign_.assignment_op_);
    visitExp(_p_->u.eassign_.exp_2);
    break;  case is_Ecomma:
    /* Code for Ecomma Goes Here */
    visitExp(_p_->u.ecomma_.exp_1);
    visitExp(_p_->u.ecomma_.exp_2);
    break;  case is_Econdition:
    /* Code for Econdition Goes Here */
    visitExp(_p_->u.econdition_.exp_1);
    visitExp(_p_->u.econdition_.exp_2);
    visitExp(_p_->u.econdition_.exp_3);
    break;  case is_Elor:
    /* Code for Elor Goes Here */
    visitExp(_p_->u.elor_.exp_1);
    visitExp(_p_->u.elor_.exp_2);
    break;  case is_Eland:
    /* Code for Eland Goes Here */
    visitExp(_p_->u.eland_.exp_1);
    visitExp(_p_->u.eland_.exp_2);
    break;  case is_Ebitor:
    /* Code for Ebitor Goes Here */
    visitExp(_p_->u.ebitor_.exp_1);
    visitExp(_p_->u.ebitor_.exp_2);
    break;  case is_Ebitexor:
    /* Code for Ebitexor Goes Here */
    visitExp(_p_->u.ebitexor_.exp_1);
    visitExp(_p_->u.ebitexor_.exp_2);
    break;  case is_Ebitand:
    /* Code for Ebitand Goes Here */
    visitExp(_p_->u.ebitand_.exp_1);
    visitExp(_p_->u.ebitand_.exp_2);
    break;  case is_Eeq:
    /* Code for Eeq Goes Here */
    visitExp(_p_->u.eeq_.exp_1);
    visitExp(_p_->u.eeq_.exp_2);
    break;  case is_Eneq:
    /* Code for Eneq Goes Here */
    visitExp(_p_->u.eneq_.exp_1);
    visitExp(_p_->u.eneq_.exp_2);
    break;  case is_Elthen:
    /* Code for Elthen Goes Here */
    visitExp(_p_->u.elthen_.exp_1);
    visitExp(_p_->u.elthen_.exp_2);
    break;  case is_Egrthen:
    /* Code for Egrthen Goes Here */
    visitExp(_p_->u.egrthen_.exp_1);
    visitExp(_p_->u.egrthen_.exp_2);
    break;  case is_Ele:
    /* Code for Ele Goes Here */
    visitExp(_p_->u.ele_.exp_1);
    visitExp(_p_->u.ele_.exp_2);
    break;  case is_Ege:
    /* Code for Ege Goes Here */
    visitExp(_p_->u.ege_.exp_1);
    visitExp(_p_->u.ege_.exp_2);
    break;  case is_Eleft:
    /* Code for Eleft Goes Here */
    visitExp(_p_->u.eleft_.exp_1);
    visitExp(_p_->u.eleft_.exp_2);
    break;  case is_Eright:
    /* Code for Eright Goes Here */
    visitExp(_p_->u.eright_.exp_1);
    visitExp(_p_->u.eright_.exp_2);
    break;  case is_Eplus:
    /* Code for Eplus Goes Here */
    visitExp(_p_->u.eplus_.exp_1);
    visitExp(_p_->u.eplus_.exp_2);
    break;  case is_Eminus:
    /* Code for Eminus Goes Here */
    visitExp(_p_->u.eminus_.exp_1);
    visitExp(_p_->u.eminus_.exp_2);
    break;  case is_Etimes:
    /* Code for Etimes Goes Here */
    visitExp(_p_->u.etimes_.exp_1);
    visitExp(_p_->u.etimes_.exp_2);
    break;  case is_Ediv:
    /* Code for Ediv Goes Here */
    visitExp(_p_->u.ediv_.exp_1);
    visitExp(_p_->u.ediv_.exp_2);
    break;  case is_Emod:
    /* Code for Emod Goes Here */
    visitExp(_p_->u.emod_.exp_1);
    visitExp(_p_->u.emod_.exp_2);
    break;  case is_Etypeconv:
    /* Code for Etypeconv Goes Here */
    visitType_name(_p_->u.etypeconv_.type_name_);
    visitExp(_p_->u.etypeconv_.exp_);
    break;  case is_Epreinc:
    /* Code for Epreinc Goes Here */
    visitExp(_p_->u.epreinc_.exp_);
    break;  case is_Epredec:
    /* Code for Epredec Goes Here */
    visitExp(_p_->u.epredec_.exp_);
    break;  case is_Epreop:
    /* Code for Epreop Goes Here */
    visitUnary_operator(_p_->u.epreop_.unary_operator_);
    visitExp(_p_->u.epreop_.exp_);
    break;  case is_Ebytesexpr:
    /* Code for Ebytesexpr Goes Here */
    visitExp(_p_->u.ebytesexpr_.exp_);
    break;  case is_Ebytestype:
    /* Code for Ebytestype Goes Here */
    visitType_name(_p_->u.ebytestype_.type_name_);
    break;  case is_Earray:
    /* Code for Earray Goes Here */
    visitExp(_p_->u.earray_.exp_1);
    visitExp(_p_->u.earray_.exp_2);
    break;  case is_Efunk:
    /* Code for Efunk Goes Here */
    visitExp(_p_->u.efunk_.exp_);
    break;  case is_Efunkpar:
    /* Code for Efunkpar Goes Here */
    visitExp(_p_->u.efunkpar_.exp_);
    visitListExp(_p_->u.efunkpar_.listexp_);
    break;  case is_Eselect:
    /* Code for Eselect Goes Here */
    visitExp(_p_->u.eselect_.exp_);
    visitIdent(_p_->u.eselect_.ident_);
    break;  case is_Epoint:
    /* Code for Epoint Goes Here */
    visitExp(_p_->u.epoint_.exp_);
    visitIdent(_p_->u.epoint_.ident_);
    break;  case is_Epostinc:
    /* Code for Epostinc Goes Here */
    visitExp(_p_->u.epostinc_.exp_);
    break;  case is_Epostdec:
    /* Code for Epostdec Goes Here */
    visitExp(_p_->u.epostdec_.exp_);
    break;  case is_Evar:
    /* Code for Evar Goes Here */
    visitIdent(_p_->u.evar_.ident_);
    break;  case is_Econst:
    /* Code for Econst Goes Here */
    visitConstant(_p_->u.econst_.constant_);
    break;  case is_Estring:
    /* Code for Estring Goes Here */
    visitString(_p_->u.estring_.string_);
    break;
  default:
    fprintf(stderr, "Error: bad kind field when printing Exp!\n");
    exit(1);
  }
}