Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Курсовая работа2 / GenAsm
.h// Purpose: Генерация ассемблерного кода
//*****************************************************************************
#ifndef _COMPILER_GENASM_H_
#define _COMPILER_GENASM_H_
//-----------------------------------------------------------------------------
#include "Tetrads.h"
#include "NameTables.h"
#include <cstdio>
#include <string>
//-----------------------------------------------------------------------------
// Количество байт, необходимое для хранения одной переменной типа
#define SIZE_INT 2
#define SIZE_REAL 4
#define SIZE_CHAR 1
#define SIZE_BOOL 1
#define SIZE_STR 256
//-----------------------------------------------------------------------------
class CGenAsm
{
FILE *m_pFile;
unsigned m_NextLabel;
//--------------------
std::string NewLabel();
void WriteAsmPrefix();
void WriteSegmentStack();
void WriteSegmentData(CNameTable& NameTable);
void WriteSegmentCode(CTetradStream &Tetrads);
void WriteTetrad(STetrad &tet);
const char *GetConditionInstruction(TET_OPERATION op);
public:
CGenAsm();
void GenerateAsmFile(const char *FileName, CNameTable& NameTable, CTetradStream &Tetrads);
};
//-----------------------------------------------------------------------------
#endif
Соседние файлы в папке Курсовая работа2