Exemple #1
0
void Skeleton::visitERange(ERange *erange)
{
  /* Code For ERange Goes Here */

  visitInteger(erange->integer_1);
  visitInteger(erange->integer_2);

}
Exemple #2
0
void Skeleton::visitRangeType(RangeType *rangetype)
{
  /* Code For RangeType Goes Here */

  visitInteger(rangetype->integer_1);
  visitInteger(rangetype->integer_2);

}
Exemple #3
0
void Skeleton::visitEIntSTE(EIntSTE *eintste)
{
  /* Code For EIntSTE Goes Here */

  visitInteger(eintste->integer_);

}
Exemple #4
0
void Skeleton::visitEInt(EInt *eint)
{
  /* Code For EInt Goes Here */

  visitInteger(eint->integer_);

}
Exemple #5
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);
  }
}
void Skeleton::visitORelAddS(ORelAddS* oreladds)
{
  /* Code For ORelAddS Goes Here */

  oreladds->register_->accept(this);
  visitInteger(oreladds->integer_);
}
void Skeleton::visitORelAddP(ORelAddP* oreladdp)
{
  /* Code For ORelAddP Goes Here */

  oreladdp->register_->accept(this);
  visitInteger(oreladdp->integer_);
}
void Skeleton::visitOSubC(OSubC* osubc)
{
  /* Code For OSubC Goes Here */

  osubc->register_->accept(this);
  visitInteger(osubc->integer_);
}
void Skeleton::visitOAddC(OAddC* oaddc)
{
  /* Code For OAddC Goes Here */

  oaddc->register_->accept(this);
  visitInteger(oaddc->integer_);
}
Exemple #10
0
void Skeleton::visitExpressionNumber(ExpressionNumber *expression_number)
{
  /* Code For ExpressionNumber Goes Here */

  visitInteger(expression_number->integer_);

}
Exemple #11
0
void ShowAbsyn::visitOSubC(OSubC* p)
{
  bufAppend('(');
  bufAppend("OSubC");
  bufAppend(' ');
  bufAppend('[');
  if (p->register_)  p->register_->accept(this);
  bufAppend(']');
  bufAppend(' ');
  visitInteger(p->integer_);
  bufAppend(')');
}
Exemple #12
0
void ShowAbsyn::visitORelAddS(ORelAddS* p)
{
  bufAppend('(');
  bufAppend("ORelAddS");
  bufAppend(' ');
  bufAppend('[');
  if (p->register_)  p->register_->accept(this);
  bufAppend(']');
  bufAppend(' ');
  visitInteger(p->integer_);
  bufAppend(' ');
  bufAppend(')');
}
Exemple #13
0
void PrintAbsyn::visitOSubC(OSubC* p)
{
  int oldi = _i_;
  if (oldi > 0) render(_L_PAREN);

  render("sub");
  _i_ = 0; p->register_->accept(this);
  render(',');
  visitInteger(p->integer_);

  if (oldi > 0) render(_R_PAREN);

  _i_ = oldi;
}
Exemple #14
0
void PrintAbsyn::visitORelAddS(ORelAddS* p)
{
  int oldi = _i_;
  if (oldi > 0) render(_L_PAREN);

  render('[');
  _i_ = 0; p->register_->accept(this);
  render('-');
  visitInteger(p->integer_);
  render(']');

  if (oldi > 0) render(_R_PAREN);

  _i_ = oldi;
}
Exemple #15
0
void CodeGen::visitEInt(EInt *eint)
{
  visitInteger(eint->integer_);
  // BOOKMARK
  // stringstream temp;
  // temp << "#" << tempInt;
  // emitCmd("MOV", 0, temp.str());
  // THIS IS WHAT'S CAUSING ALL THE SHIT. DEAL WITH IT TOMORROW
  string intAfter = getLabel(curScope, "intLit", curDataNum, "after");
  string intLabel = getLabel(curScope, "intLit", curDataNum, "data");
  cout << "\tB \t" << intAfter << "\n";
  emitLabel(intLabel);
  cout << ".int\t" << tempInt << "\n"; 
  printf(".align 4\n");
  //cout << "\"\n .align 4\n";
  emitLabel(intAfter);
  cout << "\tLDR \tr12,\t=" << intLabel <<  "\n";
  cout << "\tLDR \tr0,\t [r12]\n";
  curDataNum++;  
}
Exemple #16
0
void visitConstant(Constant _p_)
{
  switch(_p_->kind)
  {
  case is_Efloat:
    /* Code for Efloat Goes Here */
    visitDouble(_p_->u.efloat_.double_);
    break;  case is_Echar:
    /* Code for Echar Goes Here */
    visitChar(_p_->u.echar_.char_);
    break;  case is_Eunsigned:
    /* Code for Eunsigned Goes Here */
    visitUnsigned(_p_->u.eunsigned_.unsigned_);
    break;  case is_Elong:
    /* Code for Elong Goes Here */
    visitLong(_p_->u.elong_.long_);
    break;  case is_Eunsignlong:
    /* Code for Eunsignlong Goes Here */
    visitUnsignedLong(_p_->u.eunsignlong_.unsignedlong_);
    break;  case is_Ehexadec:
    /* Code for Ehexadec Goes Here */
    visitHexadecimal(_p_->u.ehexadec_.hexadecimal_);
    break;  case is_Ehexaunsign:
    /* Code for Ehexaunsign Goes Here */
    visitHexUnsigned(_p_->u.ehexaunsign_.hexunsigned_);
    break;  case is_Ehexalong:
    /* Code for Ehexalong Goes Here */
    visitHexLong(_p_->u.ehexalong_.hexlong_);
    break;  case is_Ehexaunslong:
    /* Code for Ehexaunslong Goes Here */
    visitHexUnsLong(_p_->u.ehexaunslong_.hexunslong_);
    break;  case is_Eoctal:
    /* Code for Eoctal Goes Here */
    visitOctal(_p_->u.eoctal_.octal_);
    break;  case is_Eoctalunsign:
    /* Code for Eoctalunsign Goes Here */
    visitOctalUnsigned(_p_->u.eoctalunsign_.octalunsigned_);
    break;  case is_Eoctallong:
    /* Code for Eoctallong Goes Here */
    visitOctalLong(_p_->u.eoctallong_.octallong_);
    break;  case is_Eoctalunslong:
    /* Code for Eoctalunslong Goes Here */
    visitOctalUnsLong(_p_->u.eoctalunslong_.octalunslong_);
    break;  case is_Ecdouble:
    /* Code for Ecdouble Goes Here */
    visitCDouble(_p_->u.ecdouble_.cdouble_);
    break;  case is_Ecfloat:
    /* Code for Ecfloat Goes Here */
    visitCFloat(_p_->u.ecfloat_.cfloat_);
    break;  case is_Eclongdouble:
    /* Code for Eclongdouble Goes Here */
    visitCLongDouble(_p_->u.eclongdouble_.clongdouble_);
    break;  case is_Eint:
    /* Code for Eint Goes Here */
    visitInteger(_p_->u.eint_.integer_);
    break;
  default:
    fprintf(stderr, "Error: bad kind field when printing Constant!\n");
    exit(1);
  }
}