Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Курсовая работа2 / Tetrads
.cpp
// File: Tetrads.cpp
#include "StdAfx.h"
#include "Tetrads.h"
#include <assert.h>
//-----------------------------------------------------------------------------
STetrad::STetrad(TET_OPERATION op, std::string op1, std::string op2, std::string res)
: operation(op), operand1(op1), operand2(op2), result(res)
{ }
//-----------------------------------------------------------------------------
const char * STetrad::OperationToStr()
{
switch(operation)
{
case TET_OP_DEF_LABEL: return "DefLabel";
case TET_OP_GOTO: return "Goto";
case TET_OP_GOTO_ZERO: return "GotoIfZero";
case TET_OP_ADD: return "Plus";
case TET_OP_SUBTRACT: return "Minus";
case TET_OP_MULT: return "Mult";
case TET_OP_DIV: return "Div";
case TET_OP_UMINUS: return "Unary Minus";
case TET_OP_ADD_F: return "Plus FP";
case TET_OP_SUBTRACT_F: return "Minus FP";
case TET_OP_MULT_F: return "Mult FP";
case TET_OP_DIV_F: return "Div FP";
case TET_OP_UMINUS_F: return "Unary Minus FP";
case TET_OP_REL_E: return "Equal";
case TET_OP_REL_G: return "Greater";
case TET_OP_REL_GE: return "Greater or Equal";
case TET_OP_REL_NE: return "Not Equal";
case TET_OP_REL_L: return "Lesser";
case TET_OP_REL_LE: return "Lesser of Equal";
case TET_OP_REL_E_F: return "Equal FP";
case TET_OP_REL_G_F: return "Greater FP";
case TET_OP_REL_GE_F: return "Greater or Equal FP";
case TET_OP_REL_NE_F: return "Not Equal FP";
case TET_OP_REL_L_F: return "Lesser FP";
case TET_OP_REL_LE_F: return "Lesser of Equal FP";
case TET_OP_ITOF: return "ITOF";
case TET_OP_CHAR_TO_STR: return "Char to String";
case TET_OP_AND: return "And";
case TET_OP_OR: return "Or";
case TET_OP_NOT: return "Not";
case TET_OP_ASSIGN_INT: return "Assign int";
case TET_OP_ASSIGN_ENUM: return "Assign enum";
case TET_OP_ASSIGN_FP: return "Assign FP";
case TET_OP_ASSIGN_CH: return "Assign char";
case TET_OP_ASSIGN_STR: return "Assign string";
case TET_OP_ASSIGN_BOOL: return "Assign bool";
case TET_OP_ASSIGN_STACK: return "Assign stack";
case TET_OP_READ_INT: return "Read int";
case TET_OP_READ_REAL: return "Read real";
case TET_OP_READ_CHAR: return "Read char";
case TET_OP_READ_STR: return "Read str";
case TET_OP_WRITE_INT: return "Write int";
case TET_OP_WRITE_REAL: return "Write real";
case TET_OP_WRITE_CHAR: return "Write char";
case TET_OP_WRITE_STR: return "Write str";
case TET_OP_WRITELN: return "WriteLn";
case TET_OP_INC_INT: return "Inc integer";
case TET_OP_STR_CONCAT: return "Str concat";
case TET_OP_STACK_PUSH: return "Push";
case TET_OP_STACK_TOP: return "Top";
case TET_OP_STACK_POP: return "Pop";
default:
assert(false);
return "Error!";
}
}
//-----------------------------------------------------------------------------
void STetrad::Print(char * pBuffer)
{
sprintf(pBuffer, "%16s %10s %10s %10s", OperationToStr(),
operand1.c_str(), operand2.c_str(), result.c_str());
}
Соседние файлы в папке Курсовая работа2