void Skeleton::visitERange(ERange *erange) { /* Code For ERange Goes Here */ visitInteger(erange->integer_1); visitInteger(erange->integer_2); }
void Skeleton::visitRangeType(RangeType *rangetype) { /* Code For RangeType Goes Here */ visitInteger(rangetype->integer_1); visitInteger(rangetype->integer_2); }
void Skeleton::visitEIntSTE(EIntSTE *eintste) { /* Code For EIntSTE Goes Here */ visitInteger(eintste->integer_); }
void Skeleton::visitEInt(EInt *eint) { /* Code For EInt Goes Here */ visitInteger(eint->integer_); }
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_); }
void Skeleton::visitExpressionNumber(ExpressionNumber *expression_number) { /* Code For ExpressionNumber Goes Here */ visitInteger(expression_number->integer_); }
void ShowAbsyn::visitOSubC(OSubC* p) { bufAppend('('); bufAppend("OSubC"); bufAppend(' '); bufAppend('['); if (p->register_) p->register_->accept(this); bufAppend(']'); bufAppend(' '); visitInteger(p->integer_); bufAppend(')'); }
void ShowAbsyn::visitORelAddS(ORelAddS* p) { bufAppend('('); bufAppend("ORelAddS"); bufAppend(' '); bufAppend('['); if (p->register_) p->register_->accept(this); bufAppend(']'); bufAppend(' '); visitInteger(p->integer_); bufAppend(' '); bufAppend(')'); }
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; }
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; }
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++; }
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); } }