150 lines
5.9 KiB
C++
150 lines
5.9 KiB
C++
// =========================================================================
|
|
// Copyright (C) 1997, Microsoft Corporation. All Rights Reserved.
|
|
// =========================================================================
|
|
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <io.h>
|
|
#include "basecore.hpp"
|
|
|
|
char TempNoun[3][3] =
|
|
{
|
|
{__K_N, __V_p, 0},
|
|
{__K_J, __V_p, 0},
|
|
{__K_N, __V_o, 0}
|
|
};
|
|
|
|
|
|
char TempNumNoun[] =
|
|
{
|
|
__K_H, __V_k, __K_G, __K_N, __V_u, __K_N, 0, 5,
|
|
__K_I, __V_u, __K_N, __K_D, __V_o, 0, 0, 4,
|
|
__K_N, __V_u, __K_N, __K_D, __V_o, 0, 0, 4,
|
|
__K_J, __V_n, __K_I, __K_D, __V_o, 0, 0, 4,
|
|
__K_B, __V_n, __K_N, __K_D, __V_o, 0, 0, 4,
|
|
__K_S, __V_h, __K_D, __V_o, 0, 0, 0, 3,
|
|
__K_D, __V_o, __K_D, __V_o, 0, 0, 0, 3,
|
|
__K_S, __V_k, __K_D, __V_k, __K_N, 0, 0, 4,
|
|
__K_G, __V_n, __K_N, __K_D, __V_k, __K_N, 0, 5,
|
|
__K_I, __V_u, __K_D, __V_k, __K_N, 0, 0, 4,
|
|
__K_N, __V_u, __K_N, 0, 0, 0, 0, 2,
|
|
__K_G, __V_o, __K_I, __V_nj, __K_R, 0, 0, 4,
|
|
__K_I, __V_nj, __K_R, 0, 0, 0, 0, 2,
|
|
__K_I, __V_nj, __K_N, 0, 0, 0, 0, 2,
|
|
__K_I, __V_l, __K_R, 0, 0, 0, 0, 2,
|
|
__K_B, __V_n, __K_N, 0, 0, 0, 0, 2,
|
|
|
|
__K_N, __V_u, __K_N, __K_J_D, __V_o, 0, 0, 4,
|
|
__K_I, __V_l, __K_R, __K_J_D, __V_o, 0, 0, 4,
|
|
|
|
__K_J, __V_n, __K_J_D, __V_o, 0, 0, 0, 4,
|
|
|
|
__K_B, __V_j, __K_N, 0, 0, 0, 0, 2,
|
|
__K_B, __V_k, __K_N, 0, 0, 0, 0, 2,
|
|
__K_D, __V_k, __K_N, 0, 0, 0, 0, 2,
|
|
__K_G, __V_m, __K_B, 0, 0, 0, 0, 2,
|
|
__K_C, __V_m, __K_I, 0, 0, 0, 0, 2,
|
|
__K_H, __V_k, __K_I, 0, 0, 0, 0, 2,
|
|
__K_J, __V_k, __K_I, 0, 0, 0, 0, 2,
|
|
__K_P, __V_u, __K_N, 0, 0, 0, 0, 2,
|
|
__K_C, __V_h, 0, 0, 0, 0, 0, 1,
|
|
__K_S, __V_l, 0, 0, 0, 0, 0, 1,
|
|
__K_D, __V_o, 0, 0, 0, 0, 0, 1,
|
|
__K_H, __V_hl, 0, 0, 0, 0, 0, 1,
|
|
__K_G, __V_hk, 0, 0, 0, 0, 0, 1
|
|
};
|
|
|
|
char TempJumpNum[] =
|
|
{
|
|
__K_G,__V_u,__K_I, 0, 2,
|
|
__K_M,__V_k,__K_N, 0, 2,
|
|
__K_I,__V_j,__K_G, 0, 2,
|
|
__K_J,__V_h, 0, 0, 1,
|
|
__K_H,__V_o, 0, 0, 1
|
|
};
|
|
|
|
char TempSujaNum[] =
|
|
{
|
|
__K_I, __V_l, __K_R, 0, 0, 0, 0, 2,
|
|
__K_I, __V_l, 0, 0, 0, 0, 0, 1,
|
|
__K_S, __V_k, __K_M, 0, 0, 0, 0, 2,
|
|
__K_S, __V_k, 0, 0, 0, 0, 0, 1,
|
|
__K_I, __V_h, 0, 0, 0, 0, 0, 1,
|
|
__K_I, __V_b, __K_G, 0, 0, 0, 0, 2,
|
|
__K_C, __V_l, __K_R, 0, 0, 0, 0, 2,
|
|
__K_P, __V_k, __K_R, 0, 0, 0, 0, 2,
|
|
__K_G, __V_n, 0, 0, 0, 0, 0, 1,
|
|
__K_H, __V_k, __K_N, __V_k, 0, 0, 0, 3,
|
|
__K_D, __V_n, __K_R, 0, 0, 0, 0, 2,
|
|
__K_S, __V_p, __K_S, 0, 0, 0, 0, 2,
|
|
__K_N, __V_p, __K_S, 0, 0, 0, 0, 2,
|
|
__K_D, __V_k, __K_S, __V_j, __K_S, 0, 0, 4,
|
|
__K_I, __V_u, __K_S, __V_j, __K_S, 0, 0, 4,
|
|
__K_I, __V_l, __K_R, __K_G, __V_h, __K_B, 0, 5,
|
|
__K_I, __V_u, __K_D, __V_j, __K_R, __K_B, 0, 5,
|
|
__K_I, __V_k, __K_H, __V_h, __K_B, 0, 0, 4,
|
|
__K_I, __V_u, __K_R, 0, 0, 0, 0, 2,
|
|
__K_S, __V_m, __K_M, __V_n, __K_R, 0, 0, 4,
|
|
__K_S, __V_j, __K_R, __V_m, __K_N, 0, 0, 4,
|
|
__K_M, __V_k, __K_H, __V_m, __K_N, 0, 0, 4,
|
|
__K_S, __V_nl, __K_N, 0, 0, 0, 0, 2,
|
|
__K_I, __V_P, __K_S, __V_n, __K_N, 0, 0, 4,
|
|
__K_I, __V_l, __K_R, __K_H, __V_m, __K_N, 0, 5,
|
|
__K_I, __V_u, __K_D, __V_m, __K_N, 0, 0, 4,
|
|
__K_I, __V_k, __K_H, __V_m, __K_N, 0, 0, 4
|
|
};
|
|
char TempBaseNum[] =
|
|
{
|
|
__K_S,__V_l,__K_B, 0, 2,
|
|
__K_B,__V_o,__K_G, 0, 2,
|
|
__K_C,__V_j,__K_N, 0, 2
|
|
};
|
|
|
|
static char DoubleNum[8][7] =
|
|
{
|
|
{ __K_I,__V_l,__K_R,__K_I,__V_l, 0, 0 },
|
|
{ __K_I,__V_l,__K_S,__V_k,__K_M, 0, 0 },
|
|
{ __K_S,__V_k,__K_M,__K_S,__V_k, 0, 0 },
|
|
{ __K_S,__V_k,__K_I,__V_h, 0, 0, 0 },
|
|
{ __K_I,__V_h,__K_I,__V_b,__K_G, 0, 0 },
|
|
{ __K_I,__V_b,__K_G,__K_C,__V_l,__K_R, 0 },
|
|
{ __K_C,__V_l,__K_R,__K_P,__V_k,__K_R, 0 },
|
|
{ __K_P,__V_k,__K_R,__K_G,__V_n, 0, 0 }
|
|
};
|
|
|
|
static char TempPrefix[] = {
|
|
__K_D, __V_o, 0, 0, 1,
|
|
__K_B, __V_l, 0, 0, 1,
|
|
__K_S, __V_l, __K_N, 0, 2,
|
|
__K_J, __V_o, 0, 0, 1,
|
|
__K_J, __V_n, 0, 0, 1,
|
|
__K_C, __V_h, __K_I, 0, 2,
|
|
__K_H, __V_u, __K_N, 0, 2,
|
|
__K_J, __V_j, __K_N, 0, 2,
|
|
__K_P, __V_l, 0, 0, 1
|
|
};
|
|
|
|
char TempSuffixOut[] = {
|
|
__K_D, __V_m, __K_R, __K_G, __V_k, __K_N, 0, 5,
|
|
__K_D, __V_m, __K_R, __K_I, __V_y, __K_I, 0, 5,
|
|
__K_D, __V_m, __K_R, __K_S_D, __V_l, __K_G, 0, 5,
|
|
|
|
__K_D, __V_m, __K_R, __K_J_D, __V_m, __K_M, 0, 5,
|
|
|
|
__K_G, __V_k, __K_N, 0, 0, 0, 0, 2,
|
|
__K_I, __V_y, __K_I, 0, 0, 0, 0, 2,
|
|
__K_S_D, __V_l, __K_G, 0, 0, 0, 0, 2,
|
|
|
|
__K_J_D, __V_m, __K_M, 0, 0, 0, 0, 2
|
|
|
|
};
|
|
|
|
LenDict JumpNum;
|
|
LenDict SujaNum;
|
|
LenDict BaseNum;
|
|
//LenDict NumNoun(TempNumNoun, 8, 35);
|
|
LenDict NumNoun;
|
|
LenDict Suffix;
|
|
|
|
int PrefixCheck(char *, char *);
|