
//[2009.01.20.화][생성!!!]


#include "c_define.h"


struct OBJECTINFOETC
{
  //[2009.01.21.수][생성!!!]{-------------------------------
  //<*.gobj> 문서를 번역하는데 필요한 부가 정보를 관리한다.
  //}-------------------------------------------------------


};

struct OBJECTINFO
{
  //[2009.01.21.수][생성!!!]{--------------------------------------
  //Object 로 번역시 현재 진행되고 있는 각종 중요 정보를 관리한다.
  //}--------------------------------------------------------------

  //처리중인 <*.ob1> 문서의 위치가 들어있다.
  char  *ob1Buf;

  //변환 중인 <*.obj> 문서의 위치가 들어있다.
  char  *objBuf;

  //현재 문서의 총 행수(BASE : 0).
  int    lineTotalCount;

  //현재 처리중인 행의 시작 index(BASE : 0).
  int    lineStartIndex;

  //현재 처리중인 행의 행 index(BASE : 0).
  int    line;

  //현재 추출한 단어.
  //이 단계에서는 추출하는 [단어] 중에 완전히 [code] 로 번역된 [문자열] 이 존재하므로
  //아주 넉넉하게 공간을 마련해 주어야 한다.
  char   word[1024*10];

  //현재 추출한 단어의 시작 index(BASE : 0).
  int    wordStartIndex;

  //부가 정보를 관리한다.
  //단, 이 젙체 정보 구조체가 복사 되어 사용되므로 대용량을 가지는 부가정보는 [포인터] 로 관리한다.
  //이렇게 하면 주소만 복사되므로 [부가정보] 의 용량과는 무관하게 된다.
  struct OBJECTINFOETC *infoEtc;

};

//[함수]------------------------------------------------------------------------

//[2011.05.02.월][완료!!!]
bool __fastcall Object(char  *pTempFileName);

//[2009.01.21.수][완료!!!]
int __fastcall Tree_Object_FuncLabel(struct OBJECTINFO  *prObjectInfo);

//[2009.01.21.수][완료!!!]
int __fastcall Tree_Object_OpcodeLine(struct OBJECTINFO  *prObjectInfo);

//[2009.01.21.수][완료!!!]
int __fastcall Tree_Object_StringCode(struct OBJECTINFO  *prObjectInfo);



//[기본 처리 함수]--------------------------------------------------------------

//[2009.01.20.화][완료!!!]
void __fastcall Object_GetWord(//정보구조체.
                               struct OBJECTINFO  *prObjectInfo,
                               //지정 단어 순번(BASE : 0).
                               int    pWordXst);

//[2009.01.22.목][완료!!!]
void __fastcall Object_Opcode(struct OBJECTINFO  *pObjectInfo,
                              int                 pOpcode);

//[2009.01.23.금][완료!!!]
void __fastcall Object_OperandType(char            *pTypeSymbol,
                                   unsigned short  *rTypeCode);

//[2009.02.08.일][완료!!!]
void __fastcall Object_Operand(char  *pAsmSymbol,
                               char  *rCode);
