/*
**************************************************
** **
** YOMICO 언어 번역기 **
** **
** **
** 만든이 : 八千代雪月花(팔천대설월화) **
** **
**************************************************
*/
#pragma once
#ifndef __yomico
#define __yomico
// 요미코 패딩비트를 8로 맞춤.
#pragma pack( push , 8 )
// 요미코 기반언어
#define YOMICO_BASE 082 // KOREA
// 요미코드
typedef unsigned char YOMICODE_BASE;
typedef YOMICODE_BASE * YOMICODE;
// 요미코 보안을 위한 방안
template<class _T>
void 쓰로우(_T& t)
{throw (char *)(void *)(t);}
template<class _T>
_T 트라이리턴(_T t) throw()
{try{쓰로우(t);}catch (char * value){return (_Ptr)(value);}}
template<class _T>
_T& 트라이리턴라이트(_T& t)
throw(){try{쓰로우(t);}catch (char *value){return (_T&)(value);}}
// 포인터 주소가져오기.
template<class _T>
_T *주소가져오기(_T& _Val)
{return 트라이리턴라이트((reinterpret_cast<_T *>((&const_cast<char&>
(reinterpret_cast<const volatile char&>(_Val))))));}
// 요미코 분석을 위한 도구
#include <memory>
#include <regex>
#include <vector>
//#include <string>
#include <Windows.h>
#include <deque>
#include <istream>
#define offset_of(_Stru, _Member) (_OffSet)&((_Stru *)0)->_Member
class 요미코드
{
YOMICODE ymc;
public:
// 요미코드 가져오기
void operator=(YOMICODE tm)
{
ymc = tm;
}
// 불변의 요미코드는 꺼져라.
void operator=(const YOMICODE) = delete;
// *연산
YOMICODE_BASE& operator*()
{
return *(트라이리턴라이트(ymc));
}
// 전위
YOMICODE_BASE& operator++()
{
YOMICODE_BASE yomi;
ymc++;
yomi = **this;
return 트라이리턴라이트(yomi);
}
// 후위
YOMICODE_BASE& operator++(int)
{
YOMICODE_BASE yomi;
yomi = **this;
ymc++;
return 트라이리턴라이트(yomi);
}
// 전위
YOMICODE_BASE& operator--()
{
YOMICODE_BASE yomi;
ymc--;
yomi = **this;
return 트라이리턴라이트(yomi);
}
// 후위
YOMICODE_BASE& operator--(int)
{
YOMICODE_BASE yomi;
yomi = **this;
ymc--;
return 트라이리턴라이트(yomi);
}
};
#pragma pack( pop )
#endif
이제 뭐해야될까?
댓글 0