Rename to Sj4

This commit is contained in:
Nishi 2026-06-20 02:12:04 +09:00
commit 0a2839610b
121 changed files with 1471 additions and 1461 deletions

75
include/sj4core/Dict.h Normal file
View file

@ -0,0 +1,75 @@
/*
* Copyright (c) 1991-1994 Sony Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Sony Corporation
* shall not be used in advertising or otherwise to promote the sale, use
* or other dealings in this Software without prior written authorization
* from Sony Corporation.
*
*/
/*
* $SonyRCSfile: Dict.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:00:55 $
*/
#define VERSIONPOS 0
#define PASSWDPOS 16
#define PASSWDLEN 16
#define STDYNORMPOS 32
#define STDYNORMLEN 36
#define STDYNORMNUM 40
#define STDYNORMCNT 44
#define STDYCLIDXPOS 48
#define STDYCLIDXLEN 52
#define STDYCLIDXSTEP 56
#define STDYCLSEGPOS 64
#define STDYCLSEGLEN 68
#define DICTIDXPOS 32
#define DICTIDXLEN 36
#define DICTSEGPOS 48
#define DICTSEGLEN 52
#define DICTSEGNUM 56
#define DICTSEGMAX 60
#define DICTAIDXPOS 64
#define DICTAIDXLEN 68
#define DICTASEGPOS 80
#define DICTASEGLEN 84
#define HEADERPOS 0
#define HEADERLENGTH 128
#define COMMENTPOS 128
#define COMMENTLENGTH 128
#define Byte2Long(c3, c2, c1, c0) (((c3) << (8 * 3)) | ((c2) << (8 * 2)) | \
((c1) << (8 * 1)) | ((c0) << (8 * 0)))
#define STDYVERSION Byte2Long('S', 2, 0, 0)
#define DICTVERSION Byte2Long('D', 2, 0, 0)

167
include/sj4core/Struct.h Normal file
View file

@ -0,0 +1,167 @@
/*
* Copyright (c) 1991-1994 Sony Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Sony Corporation
* shall not be used in advertising or otherwise to promote the sale, use
* or other dealings in this Software without prior written authorization
* from Sony Corporation.
*
*/
/*
* $SonyRCSfile: Struct.h,v $
* $SonyRevision: 1.3 $
* $SonyDate: 1994/10/21 05:13:34 $
*/
#ifndef STRUCT_H
#define STRUCT_H
typedef struct global {
JREC* Jmaxjptr;
CLREC* Jmaxclptr;
JREC* Jjrt1st;
CLREC* Jclt1st;
JREC* Jjrt2nd;
CLREC* Jclt2nd;
CLREC* Jselcl;
short Jselectid;
short Jtrank;
short Jnrank;
u_char* Jinputyomi;
u_char* Jcnvstart;
short Jcnvlen;
u_char* Jystart;
u_char Jhyomi[MAXPHINPUTLEN + 1];
u_char Jorgyomi[MAXCLINPUTLEN * 2 + 1];
u_char Jkanjibuf[MINPHOUTPUTLEN];
u_char* Jkanjipos;
u_char* Jkanjitmp;
short Jkanjilen;
u_char Jdicinl;
u_char Jdicsaml;
TypeDicSeg Jprevseg;
u_char Jfzkcount;
u_char Jfzk_ka_flg;
FREC Jfzktbl[MAXFREC];
u_char Jheadcode;
u_char Jheadlen;
u_char Jgobilen;
TypeGram Jprevclgrm;
TypeCnct Jprevclrow;
u_char Jnextcllen;
short Jkhcount;
short Jnkhcount;
KHREC Jkouhotbl[MAXKOUHONUMBER];
STDYIN* Jstdytop;
DICT* Jcurdict;
DICTL* Jdictlist;
u_char* Jdicbuf;
u_char* Jidxbuf;
TypeIdxOfs* Jidxofs;
u_char* Jaskknj[MAXKNJASKNUMBER];
u_char* Jaskknj_k[MAXKNJASKNUMBER];
STDY* Jcurstdy;
u_short Jsuuji_wbuf[NUMWORDBUF];
u_char Jsuuji_ubuf[NUMKETALENGTH];
TypeClass Jsuuji_class;
u_char Jsuuji_comma;
u_char Jsuuji_keta;
u_char* Jsuuji_yptr;
u_char Jsuuji_len;
u_char Jsuuji_exit;
u_short* Jsuuji_wkeep;
u_char* Jsuuji_ukeep;
u_char Jpeepyomi[MAXWDYOMILEN * 2 + 1];
u_char Jpeepknj[MAXWDKANJILEN + 1];
TypeGram Jpeepgrm;
u_char* Jpeepdptr;
u_char* Jpeephptr;
u_char* Jpeepkptr;
TypeDicSeg Jpeepidx;
} Global;
typedef struct dictfile {
DICT dict;
int refcnt;
#ifdef SJ4_LOCK
fd_set lock;
#endif
FILE* fp;
int fd;
u_char* buffer;
long bufsiz;
long idxstrt;
long segstrt;
TypeIdxOfs* ofsptr;
struct dictfile* link;
} DictFile;
typedef struct stdyfile {
STDY stdy;
int refcnt;
ino_t inode;
FILE* fp;
int fd;
u_char* header;
struct stdyfile* link;
} StdyFile;
typedef struct workarea {
int refcnt;
int lock;
struct workarea* link;
Global global;
} WorkArea;
typedef struct sj4context {
Global* work;
STDY* stdy;
JREC* jrec_free;
JREC* jrec_pool;
CLREC* clrec_free;
CLREC* clrec_pool;
} Sj4Context;
#endif

View file

@ -0,0 +1,61 @@
/*
* Copyright (c) 1991-1994 Sony Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Sony Corporation
* shall not be used in advertising or otherwise to promote the sale, use
* or other dealings in this Software without prior written authorization
* from Sony Corporation.
*
*/
/*
* $SonyRCSfile: sj4lowlib.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:00:59 $
*/
#ifndef SJ4LOWLIB_H
#define SJ4LOWLIB_H
typedef struct sj4_client_env {
int fd;
int serv_dead_flg;
int stdy_size;
short svr_version;
short cli_version;
char default_char[2];
} SJ4_CLIENT_ENV;
#ifndef SJ4_NAME_LENGTH
#define SJ4_NAME_LENGTH 128
#endif
typedef struct sj4_who_struct {
int fd;
char hostname[SJ4_NAME_LENGTH];
char username[SJ4_NAME_LENGTH];
char progname[SJ4_NAME_LENGTH];
} SJ4_WHO_STRUCT;
#define MBCODE_SJIS 1
#define MBCODE_EUC 2
#endif /* SJ4LOWLIB_H */

View file

@ -0,0 +1,517 @@
/*
* Copyright (c) 1991-1994 Sony Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Sony Corporation
* shall not be used in advertising or otherwise to promote the sale, use
* or other dealings in this Software without prior written authorization
* from Sony Corporation.
*
*/
/*
* $SonyRCSfile: sj_connect.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:00 $
*/
#ifndef _SJ_CONNECT
#define _SJ_CONNECT
#define wo_x 0
#define ttatte_x 0
#define ttara_x 0
#define tte1_x 0
#define tte2_x 0
#define ppanasi_x 0
#define ppoi_x 0
#define ue_x 0
#define uti_x 0
#define oite_x 0
#define okeru_x 0
#define ori_x 0
#define ka1_x 0
#define ka2_x 0
#define kai_x 0
#define kasira_x 0
#define katagata_x 0
#define kadouka_x 0
#define kana_x 0
#define kane_x 0
#define kamo_x 0
#define kara1_x 0
#define kara2_x 0
#define ga1_x 0
#define ga2_x 0
#define gatera_x 0
#define kiri_x 0
#define kuseni_x 0
#define kurai_x 0
#define gurumi_x 0
#define kedo_x 0
#define koso_x 0
#define koto_x 0
#define sa2_x 0
#define sae_x 0
#define si2_x 0
#define sika_x 0
#define sura_x 0
#define zutu_x 0
#define zo_x 0
#define tame_x 0
#define dake_x 0
#define dano_x 0
#define darake_x 0
#define tuite_x 0
#define tuki_x 0
#define tutu_x 0
#define tumori_x 0
#define te1_x 0
#define te2_x 0
#define teru_x 0
#define dearou_x 0
#define deru_x 0
#define to1_x 0
#define to2_x 0
#define totte_x 0
#define toiu_x 0
#define toori_x 0
#define toki_x 0
#define tokoro_x 0
#define tote_x 0
#define tohaie_x 0
#define tomo_x 0
#define do_x 0
#define doori_x 0
#define dokoro_x 0
#define dokoroka_x 0
#define domo_x 0
#define na1_x 0
#define naa_x 0
#define nagara_x 0
#define nazo_x 0
#define nado_x 0
#define nari_x 0
#define nanka_x 0
#define nanzo_x 0
#define nante_x 0
#define ni1_x 0
#define ni2_x 0
#define ni3_x 0
#define nite_x 0
#define nimo_x 0
#define ne1_x 0
#define nee_x 0
#define no1_x 0
#define no2_x 0
#define node_x 0
#define noni_x 0
#define nomi_x 0
#define nominrz_x 0
#define ha_x 0
#define hazu_x 0
#define ba_x 0
#define bakari_x 0
#define he_x 0
#define hou_x 0
#define hoka_x 0
#define hodo_x 0
#define made_x 0
#define mama_x 0
#define mo1_x 0
#define mo2_x 0
#define motte_x 0
#define mono_x 0
#define ya1_x 0
#define ya2_x 0
#define yara_x 0
#define yue_x 0
#define yo_x 0
#define yori_x 0
#define wa_x 0
#define wake_x 0
#define wane_x 0
#define wayo_x 0
#define nn1_x 0
#define jya_x 0
#define tya_x 0
#define nagara2_x 0
#define wo_s_x 0
#define ze_x 0
#define kke_x 0
#define n_si_x 0
#define deha_x 0
#define gotosi_x 0
#define saseru_x 0
#define zaru_x 0
#define zu_x 0
#define zunba_x 0
#define seru_x 0
#define souda_x 0
#define youtai_x 0
#define denbun_x 0
#define ta_x 0
#define tai_x 0
#define tagaru_x 0
#define taru_x 0
#define da1_x 0
#define da2_x 0
#define daxtu_x 0
#define darou_x 0
#define de_x 0
#define desi_x 0
#define desho_x 0
#define desu_x 0
#define na2_x 0
#define nara_x 0
#define nai_x 0
#define nu_x 0
#define ne2_x 0
#define nn2_x 0
#define fuuda_x 0
#define besi_x 0
#define mai_x 0
#define masu_x 0
#define masure_x 0
#define mase_x 0
#define mitaida_x 0
#define you_x 0
#define youda_x 0
#define rasii_x 0
#define rareru_x 0
#define reru_x 0
#define site_x 0
#define yougen_x 0
#define aru_x 0
#define ara_x 0
#define ari1_x 0
#define ari2_x 0
#define ari3_x 0
#define are1_x 0
#define are2_x 0
#define arou_x 0
#define ii_x 0
#define itasi_x 0
#define itadaku_x 0
#define iru_x 0
#define eru_x 0
#define kakeru_x 0
#define kaneru_x 0
#define karazu_x 0
#define gatai_x 0
#define gatida_x 0
#define kudasaru_x 0
#define gozai_x 0
#define sa1_x 0
#define si1_x 0
#define siro_x 0
#define jyau_x 0
#define jimau_x 0
#define sugiru_x 0
#define subesi_x 0
#define suru_x 0
#define sure_x 0
#define se_x 0
#define seyo_x 0
#define tamau_x 0
#define tayu_x 0
#define timau_x 0
#define dekiru_x 0
#define naru_x 0
#define nasai_x 0
#define nasaru_x 0
#define nikui_x 0
#define yasui_x 0
#define yoi_x 0
#define yaru_x 0
#ifdef HORI
\244\303\244\277\244\351\244\267\244\244\244\316 \244\316\276\360\312\363\244\362\304\311\262\303 1 / 31
#endif
#define ttarasii_x 0
#define wo_o 0x80
#define ttatte_o 0x40
#define ttara_o 0x20
#define tte1_o 0x10
#define tte2_o 0x08
#define ppanasi_o 0x04
#define ppoi_o 0x02
#define ue_o 0x01
#define uti_o 0x80
#define oite_o 0x40
#define okeru_o 0x20
#define ori_o 0x10
#define ka1_o 0x08
#define ka2_o 0x04
#define kai_o 0x02
#define kasira_o 0x01
#define katagata_o 0x80
#define kadouka_o 0x40
#define kana_o 0x20
#define kane_o 0x10
#define kamo_o 0x08
#define kara1_o 0x04
#define kara2_o 0x02
#define ga1_o 0x01
#define ga2_o 0x80
#define gatera_o 0x40
#define kiri_o 0x20
#define kuseni_o 0x10
#define kurai_o 0x08
#define gurumi_o 0x04
#define kedo_o 0x02
#define koso_o 0x01
#define koto_o 0x80
#define sa2_o 0x40
#define sae_o 0x20
#define si2_o 0x10
#define sika_o 0x08
#define sura_o 0x04
#define zutu_o 0x02
#define zo_o 0x01
#define tame_o 0x80
#define dake_o 0x40
#define dano_o 0x20
#define darake_o 0x10
#define tuite_o 0x08
#define tuki_o 0x04
#define tutu_o 0x02
#define tumori_o 0x01
#define te1_o 0x80
#define te2_o 0x40
#define teru_o 0x20
#define dearou_o 0x10
#define deru_o 0x08
#define to1_o 0x04
#define to2_o 0x02
#define totte_o 0x01
#define toiu_o 0x80
#define toori_o 0x40
#define toki_o 0x20
#define tokoro_o 0x10
#define tote_o 0x08
#define tohaie_o 0x04
#define tomo_o 0x02
#define do_o 0x01
#define doori_o 0x80
#define dokoro_o 0x40
#define dokoroka_o 0x20
#define domo_o 0x10
#define na1_o 0x08
#define naa_o 0x04
#define nagara_o 0x02
#define nazo_o 0x01
#define nado_o 0x80
#define nari_o 0x40
#define nanka_o 0x20
#define nanzo_o 0x10
#define nante_o 0x08
#define ni1_o 0x04
#define ni2_o 0x02
#define ni3_o 0x01
#define nite_o 0x80
#define nimo_o 0x40
#define ne1_o 0x20
#define nee_o 0x10
#define no1_o 0x08
#define no2_o 0x04
#define node_o 0x02
#define noni_o 0x01
#define nomi_o 0x80
#define nominrz_o 0x40
#define ha_o 0x20
#define hazu_o 0x10
#define ba_o 0x08
#define bakari_o 0x04
#define he_o 0x02
#define hou_o 0x01
#define hoka_o 0x80
#define hodo_o 0x40
#define made_o 0x20
#define mama_o 0x10
#define mo1_o 0x08
#define mo2_o 0x04
#define motte_o 0x02
#define mono_o 0x01
#define ya1_o 0x80
#define ya2_o 0x40
#define yara_o 0x20
#define yue_o 0x10
#define yo_o 0x08
#define yori_o 0x04
#define wa_o 0x02
#define wake_o 0x01
#define wane_o 0x80
#define wayo_o 0x40
#define nn1_o 0x20
#define jya_o 0x10
#define tya_o 0x08
#define nagara2_o 0x04
#define wo_s_o 0x02
#define ze_o 0x80
#define kke_o 0x40
#define n_si_o 0x20
#define deha_o 0x10
#define gotosi_o 0x80
#define saseru_o 0x40
#define zaru_o 0x20
#define zu_o 0x10
#define zunba_o 0x08
#define seru_o 0x04
#define souda_o 0x02
#define youtai_o 0x01
#define denbun_o 0x80
#define ta_o 0x40
#define tai_o 0x20
#define tagaru_o 0x10
#define taru_o 0x08
#define da1_o 0x04
#define da2_o 0x02
#define daxtu_o 0x01
#define darou_o 0x80
#define de_o 0x40
#define desi_o 0x20
#define desho_o 0x10
#define desu_o 0x08
#define na2_o 0x04
#define nara_o 0x02
#define nai_o 0x01
#define nu_o 0x80
#define ne2_o 0x40
#define nn2_o 0x20
#define fuuda_o 0x10
#define besi_o 0x08
#define mai_o 0x04
#define masu_o 0x02
#define masure_o 0x01
#define mase_o 0x80
#define mitaida_o 0x40
#define you_o 0x20
#define youda_o 0x10
#define rasii_o 0x08
#define rareru_o 0x04
#define reru_o 0x02
#define site_o 0x01
#define yougen_o 0x80
#define aru_o 0x40
#define ara_o 0x20
#define ari1_o 0x10
#define ari2_o 0x08
#define ari3_o 0x04
#define are1_o 0x02
#define are2_o 0x01
#define arou_o 0x80
#define ii_o 0x40
#define itasi_o 0x20
#define itadaku_o 0x10
#define iru_o 0x08
#define eru_o 0x04
#define kakeru_o 0x02
#define kaneru_o 0x01
#define karazu_o 0x80
#define gatai_o 0x40
#define gatida_o 0x20
#define kudasaru_o 0x10
#define gozai_o 0x08
#define sa1_o 0x04
#define si1_o 0x02
#define siro_o 0x01
#define jyau_o 0x80
#define jimau_o 0x40
#define sugiru_o 0x20
#define subesi_o 0x10
#define suru_o 0x08
#define sure_o 0x04
#define se_o 0x02
#define seyo_o 0x01
#define tamau_o 0x80
#define tayu_o 0x40
#define timau_o 0x20
#define dekiru_o 0x10
#define naru_o 0x08
#define nasai_o 0x04
#define nasaru_o 0x02
#define nikui_o 0x01
#define yasui_o 0x80
#define yoi_o 0x40
#define yaru_o 0x20
#ifdef HORI
\244\303\244\277\244\351\244\267\244\244\244\316 \244\316\276\360\312\363\244\362\304\311\262\303 1 / 31
#endif
#define ttarasii_o 0x10
#endif

153
include/sj4core/sj_const.h Normal file
View file

@ -0,0 +1,153 @@
/*
* Copyright (c) 1991-1994 Sony Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Sony Corporation
* shall not be used in advertising or otherwise to promote the sale, use
* or other dealings in this Software without prior written authorization
* from Sony Corporation.
*
*/
/*
* $SonyRCSfile: sj_const.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:01 $
*/
#ifndef _SJ_CONST
#define _SJ_CONST
#include "sj_euc.h"
#define MATCH 0
#define OVER 1
#define PARTLY 2
#define CONT 3
#define UNDER 4
#define FALSE 0
#define TRUE -1
#define AD_DONE 0x0000
#define AD_NOTUSERDICT 0x0001
#define AD_BADYOMI 0x0002
#define AD_BADKANJI 0x0004
#define AD_BADHINSI 0x0008
#define AD_AREXIST 0x0010
#define AD_OVFLWDOUBLK 0x0020
#define AD_OVFLWDOUNUM 0x0040
#define AD_OVFLWUSRDIC 0x0080
#define AD_OVFLWINDEX 0x0100
#define AD_NOMIDASI 0x0010
#define AD_NOHINSI 0x0020
#define AD_NOKANJI 0x0040
#define C_WAKACHI 0x00
#define C_MINASI 0x01
#define C_BUNSETU 0x02
#define C_DICT 0x03
#define C_N_ARABIA 0x04
#define C_N_ARACMA 0x05
#define C_N_KAZU 0x06
#define C_N_SUUJI 0x07
#define C_N_NANSUU 0x08
#define C_N_KANKURA 0x09
#define C_N_ARAKURA 0x0a
#define C_N_KAZULONG 0x0b
#define C_N_KAZULCMA 0x0c
#define C_N_SUUJILONG 0x0d
#define JFLAG_N10 (1 << 15)
#define JFLAG_N_1 (1 << 14)
#define JFLAG_NS1 (1 << 13)
#define JFLAG_N01 (1 << 12)
#define JFLAG_N23 (1 << 11)
#define JFLAG_NK2 (1 << 10)
#define JFLAG_NK4 (1 << 9)
#define JFLAG_NN0 (1 << 8)
#define JFLAG_NSN (1 << 7)
#define JFLAG_KA (1 << 0)
#define DO_CLSTUDY 0x01
#define DO_IKKATU 0x02
#define K_DOUSHI 1
#define K_YOUGEN 2
#define K_TAIGEN 3
#define K_FUKUSI 4
#define K_RENTAISI 5
#define K_SONOTA 6
#define EUC_a1 (u_char)0xa1
#define EUC_a2 (u_char)0xa2
#define EUC_a3 (u_char)0xa3
#define EUC_a4 (u_char)0xa4
#define EUC_a5 (u_char)0xa5
#define EUC_START (u_char)0xa1
#define EUC_END (u_char)0xfe
#define EUC_END_KIGOU (u_char)0xae
#define EUC_0 (u_char)0xb0
#define EUC_END_0 (u_char)0xb9
#define EUC_A (u_char)0xc1
#define EUC_END_A (u_char)0xda
#define EUC_a (u_char)0xe1
#define EUC_END_a (u_char)0xfa
#define EUC_END_HIRA (u_char)0xf3
#define EUC_VU (u_char)0xf4
#define EUC_XKA (u_char)0xf5
#define EUC_XKE (u_char)0xf6
#define isknj1(c) (((c) == SS2) || (((c) & 0x80) && ((c) != SS3)))
#define SHU 0x01
#define T_KANOU 0x80
#define T_SHUUJO 0x40
#define DICTOP 0x01
#define FZKTOP 0x02
#define DEPEND 0x04
#define NUMBER 0x08
#define FZK_KGU 0x10
#define TAI_KGU 0x20
#define BEFORNUM 0x40
#define MIDNUM 0x80
#define NOTNRM 0xFE
#define CNJEND 0xff
#define TYOUONFLG 0x80
#define MAXFREC 32
#define MAXFLVL 10
#define FZKEND 0xff
#define SETTOU_O 1
#define SETTOU_GO 2
#define SETTOU_DAI 3
#define SETTOU_KIGOU 4
#define NUMKETALENGTH 16
#define NUMWORDBUF ((NUMKETALENGTH + 3) / 4)
#endif

88
include/sj4core/sj_dict.h Normal file
View file

@ -0,0 +1,88 @@
/*
* Copyright (c) 1991-1994 Sony Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Sony Corporation
* shall not be used in advertising or otherwise to promote the sale, use
* or other dealings in this Software without prior written authorization
* from Sony Corporation.
*
*/
/*
* $SonyRCSfile: sj_dict.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:03 $
*/
#ifndef _SJ_DICT
#define _SJ_DICT
#define DIC_MAIN 0
#define DIC_USER 1
#define DICSEGBASE 0
#define MAXDOUONBLK 0xfff
#define DOUONBLKSIZENUMBER 3
#define DICSEGTERM 0xff
#define DOUONBLKTERM 0xff
#define HINSIBLKTERM 0xff
#define MAXSEGMENTNUMBER 0xffff
#define NORMALKANJIMASK 0x7f
#define SS3KANJI 0x0080
#define ZENHIRAASSYUKU 0x80
#define OFFSETASSYUKU 0x90
#define ZENKATAASSYUKU 0xa0
#define AIATTRIBUTE 0xb0
#define KANJIASSYUKU 0xc0
#define LEADINGHANKAKU 0xd0
#define KANJISTREND 0x00
#define ISASSYUKU 0x80
#define ASSUKUUSE2BYTE 0x90
#define KNJASSYUKUMASK 0x0f
#define KANJICODEMASK 0x0f
#define KANJIMODEMASK 0xf0
#define ATRMSKANJIOFS 0xc0c0
#define MAXKNJASKNUMBER 16
#define MAXYOMIASKNUMBER 16
#define MAXWDYOMILEN 31
#define MAXWDKANJILEN 64
#define ASSYUKUYOMITOP 0x80
#define NOKORIYOMITOP 0x40
#define getsize(p) (((int)(*(p) & 0x0f) * 0x100) + *((p) + 1))
#define getntag(p) ((*(p) == DICSEGTERM) ? (p) : (p) + getsize(p))
#define getplen(p) (((*(p) & ASSYUKUYOMITOP) ? 0x10 : 0) + (*((p) + 2) >> 4))
#define getnlen(p) (((*(p) & NOKORIYOMITOP) ? 0x10 : 0) + (*((p) + 2) & 0x0f))
#define segtop() (dicbuf + *dicbuf + 1)
#define segend(p) (*(p) == DICSEGTERM || (p) >= dicbuf + curdict->seglen)
#endif

View file

@ -0,0 +1,45 @@
/*
* Copyright (c) 1991-1994 Sony Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Sony Corporation
* shall not be used in advertising or otherwise to promote the sale, use
* or other dealings in this Software without prior written authorization
* from Sony Corporation.
*
*/
/*
* $SonyRCSfile: sj_global.h,v $
* $SonyRevision: 1.2 $
* $SonyDate: 1994/12/09 11:27:06 $
*/
#ifndef SJ_GLOBAL_H
#define SJ_GLOBAL_H
#ifdef SJ4_GLOBAL
extern Global* work_base;
extern STDY* stdy_base;
#endif
extern int serv_errno;
#endif

View file

@ -0,0 +1,357 @@
/*
* Copyright (c) 2004 Iwata <iwata@quasiquote.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef KANAKAN_H
#define KANAKAN_H
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <errno.h>
#include <sys/stat.h>
#ifdef _WIN32
#include <io.h>
#else
#include <unistd.h>
#endif
#include "sj_kcnv.h"
#include "sj_struct.h"
#ifdef SJ4_GLOBAL
#define SJ4_CONTEXT
#define SJ4_CONTEXT2 void
#define SJ4_CONTEXT_PASS
#define SJ4_CONTEXT_PASS2
#else
#define SJ4_CONTEXT Sj4Context *ctx,
#define SJ4_CONTEXT2 Sj4Context* ctx
#define SJ4_CONTEXT_PASS ctx,
#define SJ4_CONTEXT_PASS2 ctx
#endif
/*
* NOTE:
* All of these funtions calling rule are not following
* ANSI like arguement lists, fun(dest, src, ...).
* There are fun(src, dest, ...).
*/
/* adddic.c */
u_int adddic(SJ4_CONTEXT u_char*, u_char*, TypeGram);
/* addelcmn.c */
void set_size(u_char*, int, int, int);
u_int addel_arg(SJ4_CONTEXT u_char*, u_char*, TypeGram, u_char*, int);
int cvtknj(SJ4_CONTEXT u_char*, u_char*, u_char*);
int srchkana(SJ4_CONTEXT u_char**, int*);
int srchgram(u_char*, u_char**, TypeGram);
int srchkanji(u_char**, u_char*, int);
TypeIdxOfs count_uidx(SJ4_CONTEXT2);
void chg_uidx(SJ4_CONTEXT TypeDicSeg, u_char*, int);
/* alloc.c */
JREC* alloc_jrec(SJ4_CONTEXT2);
void free_jrec(SJ4_CONTEXT JREC*);
CLREC* alloc_clrec(SJ4_CONTEXT2);
void free_clrec(SJ4_CONTEXT CLREC*);
/* charsize.c */
int codesize(u_char);
/* chrtbl.c */
extern u_char chrtbl[256];
/* cl2knj.c */
int cl2knj(SJ4_CONTEXT u_char*, int, u_char*);
int nextcl(SJ4_CONTEXT u_char*, int);
int prevcl(SJ4_CONTEXT u_char*, int);
int selectnum(SJ4_CONTEXT2);
/* clstudy.c */
int clstudy(SJ4_CONTEXT u_char*, u_char*, STDYOUT*);
void delclsub(SJ4_CONTEXT u_char*);
void mkclidx(SJ4_CONTEXT2);
/* cmpstr.c */
int cmpstr(u_char*, u_char*);
/* conjunc.c */
extern u_char* conjadr[];
/* connect.c */
extern u_char connadr[];
extern u_char* rigtadr[];
/* cvtclknj.c */
void cvtclknj(SJ4_CONTEXT2);
/* cvtdict.c */
void cvtdict(SJ4_CONTEXT KHREC*, CLREC*, int);
void cvtminasi(SJ4_CONTEXT int);
void cvtwakachi(SJ4_CONTEXT CLREC*);
/* cvtkanji.c */
void cvtphknj(SJ4_CONTEXT2);
void cvtkouho(SJ4_CONTEXT KHREC*);
void setstyrec(SJ4_CONTEXT KHREC*);
/* deldic.c */
u_int deldic(SJ4_CONTEXT u_char*, u_char*, TypeGram);
/* dict.c */
void get_askknj(SJ4_CONTEXT2);
int seldict(SJ4_CONTEXT TypeDicID);
u_char* get_idxptr(SJ4_CONTEXT TypeDicSeg);
/* functbl.c */
extern VFunc cvtnum_func[];
extern UCPFunc getkan_func[];
extern IFunc setjrec_func[];
extern IFunc hiraknj_func[];
/* fuzoku.c */
void setclrec(SJ4_CONTEXT JREC*, u_char*, TypeCnct);
RECURS void srchfzk(SJ4_CONTEXT JREC*, u_char*, TypeCnct, int);
/* fzkyomi.c */
extern u_char* fzkadr[];
/* getkanji.c */
u_char* getkan_none(u_char*, u_char*, u_char*, int, int);
u_char* getkan_hira(u_char*, u_char*, u_char*, int, int);
u_char* getkan_kata(u_char*, u_char*, u_char*, int, int);
u_char* getkan_knj(SJ4_CONTEXT u_char*, u_char*, u_char*, int, int);
u_char* getkan_ofs(SJ4_CONTEXT u_char*, u_char*, u_char*, int, int);
u_char* getkan_norm(u_char*, u_char*, u_char*, int, int);
u_char* getkan_ascii(u_char*, u_char*, u_char*, int, int);
int getkanji(SJ4_CONTEXT u_char*, int, u_char*, u_char*);
/* getrank.c */
void getrank(SJ4_CONTEXT2);
/* hzstrlen.c */
int euc_codesize(u_char c);
int hzstrlen(u_char*, int);
/* init.c */
void seg_count(SJ4_CONTEXT DICT*);
void mkidxtbl(SJ4_CONTEXT DICT*);
void initwork(SJ4_CONTEXT2);
#ifndef SJ4_GLOBAL
Sj4Context* alloccontext(const char*);
void free_context(Sj4Context*);
#endif
/* istrcmp.c */
int istrcmp(u_char*, u_char*, int, int);
/* memcpy.c */
void sstrncpy(u_char*, u_char*, int);
/* memory.c */
JREC* free_jlst(SJ4_CONTEXT JREC*);
CLREC* free_clst(SJ4_CONTEXT CLREC*, int);
void free_clall(SJ4_CONTEXT CLREC*);
void free_jall(SJ4_CONTEXT JREC*);
void freework(SJ4_CONTEXT2);
/* mk2claus.c */
void mk2claus(SJ4_CONTEXT2);
/* mkbunset.c */
void mkbunsetu(SJ4_CONTEXT2);
CLREC* argclrec(SJ4_CONTEXT int);
/* mkjiritu.c */
void mkjiritu(SJ4_CONTEXT int);
JREC* argjrec(SJ4_CONTEXT int, JREC*);
/* mkkouho.c */
void mkkouho(SJ4_CONTEXT2);
u_char* makekan_none(SJ4_CONTEXT u_char*, u_char*, int);
u_char* makekan_1byte(SJ4_CONTEXT u_char*, u_char*, int);
u_char* makekan_knj(SJ4_CONTEXT u_char*, u_char*, int);
u_char* makekan_ofs(SJ4_CONTEXT u_char*, u_char*, int);
u_char* makekan_norm(SJ4_CONTEXT u_char*, u_char*, int);
u_char* makekan_ascii(SJ4_CONTEXT u_char*, u_char*, int);
int sel_sjmode(JREC*);
/* mknumber.c */
void num_type00(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type01(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type02(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type03(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type04(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type05(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type06(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type07(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type08(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type09(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type10(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type11(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type12(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type13(SJ4_CONTEXT u_char*, u_char*, JREC*);
void num_type14(SJ4_CONTEXT u_char*, u_char*, JREC*);
/* mvmemd.c */
void mvmemd(u_char*, u_char*, int);
/* mvmemi.c */
void mvmemi(u_char*, u_char*, int);
/* peepdic.c */
int getusr(SJ4_CONTEXT u_char*);
int nextusr(SJ4_CONTEXT u_char*);
int prevusr(SJ4_CONTEXT u_char*);
/* ph2knj.c */
int ph2knj(SJ4_CONTEXT u_char*, u_char*, int);
/* ph_khtbl.c */
int ph_khtbl(SJ4_CONTEXT CLREC*);
/* priority.c */
int priority(SJ4_CONTEXT CLREC*);
void pritiny(SJ4_CONTEXT2);
/* prtytbl.c */
extern u_char taipri[7][45];
extern u_char sttpri[5][31];
/* s2ctbl.c */
extern u_char kigou[];
/* sdepend.c */
DictFile* opendict(SJ4_CONTEXT char*, char*);
int closedict(SJ4_CONTEXT DictFile*);
void lock_dict(DictFile*, int);
void unlock_dict(DictFile*, int);
int is_dict_locked(DictFile*);
StdyFile* openstdy(char*, char*);
int closestdy(StdyFile*);
int putstydic(SJ4_CONTEXT2);
int putcldic(SJ4_CONTEXT2);
int makedict(char*, int, int, int);
int makestdy(char*, int, int, int);
void sj_closeall(SJ4_CONTEXT2);
int set_dictpass(DictFile*, char*);
int set_stdypass(SJ4_CONTEXT char*);
int set_dictcmnt(DictFile*, char*);
int set_stdycmnt(SJ4_CONTEXT char*);
int get_stdysize(SJ4_CONTEXT int*, int*, int*);
/* selclrec.c */
void selclrec(SJ4_CONTEXT2);
/* selsuuji.c */
extern u_short* selsjadrs[];
/* setconj.c */
int setconj(SJ4_CONTEXT TypeGram, JREC*, CREC*);
/* setjrec.c */
int setj_atrb(SJ4_CONTEXT u_char*);
int setj_ofs(SJ4_CONTEXT u_char*);
int setj_knj(SJ4_CONTEXT u_char*);
int setj_norm1(SJ4_CONTEXT u_char*);
int setj_norm2(SJ4_CONTEXT u_char*);
int setj_norm3(SJ4_CONTEXT u_char*); /* unused??? */
void setjrec(SJ4_CONTEXT u_char*, int);
void setnumrec(SJ4_CONTEXT u_char*, JREC*, TypeGram);
void setcrec(SJ4_CONTEXT u_char*);
/* setkouho.c */
void setkouho(SJ4_CONTEXT CLREC*, TypeDicOfs, int);
void ph_setkouho(SJ4_CONTEXT CLREC*, TypeDicOfs, STDYIN*);
int hiraknj_atrb(SJ4_CONTEXT u_char*, int*);
int hiraknj_ofs(SJ4_CONTEXT u_char*, int*);
int hiraknj_knj(SJ4_CONTEXT u_char*, int*);
int hiraknj_hask(SJ4_CONTEXT u_char*, int*);
int hiraknj_kask(SJ4_CONTEXT u_char*, int*);
int hiraknj_norm(SJ4_CONTEXT u_char*, int*);
int hiraknj_hira(SJ4_CONTEXT u_char*, int*);
/* setubi.c */
u_char* getstb(TypeGram);
void setubi(SJ4_CONTEXT JREC*, u_char*);
/* sj2code.c */
int sj2cd_chr(u_char*, u_char*);
int sj2cd_str(u_char*, u_char*, int);
/* skiphblk.c */
u_char* skiphblk(u_char*);
/* skipkstr.c */
u_char* skipkstr(u_char*);
/* srchdict.c */
int yomicmp(SJ4_CONTEXT u_char*, u_char*, u_char*);
u_char* srchdict(SJ4_CONTEXT u_char*);
/* srchhead.c */
int srchhead(SJ4_CONTEXT2);
/* srchidx.c */
TypeDicSeg srchidx(SJ4_CONTEXT TypeDicSeg, int);
/* srchnum.c*/
void srchnum(SJ4_CONTEXT2);
void setwdnum(SJ4_CONTEXT u_char*, int, u_short*);
int setucnum(SJ4_CONTEXT u_char*, int, u_char*);
/* sstrcmp.c */
int sstrcmp(u_char*, u_char*);
/* sstrlen.c */
int sstrlen(u_char*);
/* sstrncmp.c */
int sstrncmp(u_char*, u_char*, int);
/* stbtbl.c */
extern u_char* stbadr[];
/* stttbl.c */
extern u_char* settou_ptr[];
extern u_char scncttbl[2][24];
/* study.c */
int study(SJ4_CONTEXT STDYOUT*);
STDYIN* srchstdy(SJ4_CONTEXT TypeDicSeg, TypeDicOfs, TypeDicID);
/* suujitbl.c */
extern u_char suuji_tbl[];
extern u_char kurai1_tbl[];
extern u_char kurai2_tbl[];
extern u_char num1tbl[];
extern u_char num2tbl[];
extern u_char num3tbl[];
extern u_char num4tbl[];
extern u_char num5tbl[];
extern u_char num6tbl[];
/* terminat.c */
int terminate(SJ4_CONTEXT TypeCnct, u_char*);
/* termtbl.c */
extern u_char termtbl[];
/* wakachi.c */
void wakachi(SJ4_CONTEXT2);
#endif /* KANAKAN_H */

47
include/sj4core/sj_kcnv.h Normal file
View file

@ -0,0 +1,47 @@
/*
* Copyright (c) 1991-1994 Sony Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Sony Corporation
* shall not be used in advertising or otherwise to promote the sale, use
* or other dealings in this Software without prior written authorization
* from Sony Corporation.
*
*/
/*
* $SonyRCSfile: sj_kcnv.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:10 $
*/
#include <stdio.h>
#include "sj_typedef.h"
#include "sj_rename.h"
#include "sj_const.h"
#include "sj_var.h"
#include "sj_dict.h"
#include "sj_study.h"
#include "sj_table.h"
#include "sj_struct.h"
#include "Const.h"
#include "Struct.h"
#include "sj_global.h"

274
include/sj4core/sj_left.h Normal file
View file

@ -0,0 +1,274 @@
/*
* Copyright (c) 1991-1994 Sony Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Sony Corporation
* shall not be used in advertising or otherwise to promote the sale, use
* or other dealings in this Software without prior written authorization
* from Sony Corporation.
*
*/
/*
* $SonyRCSfile: sj_left.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:12 $
*/
#ifndef _SJ_LEFT
#define _SJ_LEFT
#define L_WO 0x01
#define L_TTATTE 0x02
#define L_TTARA 0x03
#define L_TTE1 0x04
#define L_TTE2 0x05
#define L_PPANASI 0x06
#define L_PPOI 0x07
#define L_UE 0x08
#define L_UTI 0x09
#define L_OITE 0x0a
#define L_OKERU 0x0b
#define L_ORI 0x0c
#define L_KA1 0x0d
#define L_KA2 0x0e
#define L_KAI 0x0f
#define L_KASIRA 0x10
#define L_KATAGATA 0x11
#define L_KADOUKA 0x12
#define L_KANA 0x13
#define L_KANE 0x14
#define L_KAMO 0x15
#define L_KARA1 0x16
#define L_KARA2 0x17
#define L_GA1 0x18
#define L_GA2 0x19
#define L_GATERA 0x1a
#define L_KIRI 0x1b
#define L_KUSENI 0x1c
#define L_KURAI 0x1d
#define L_GURUMI 0x1e
#define L_KEDO 0x1f
#define L_KOSO 0x20
#define L_KOTO 0x21
#define L_SA2 0x22
#define L_SAE 0x23
#define L_SI2 0x24
#define L_SIKA 0x25
#define L_SURA 0x26
#define L_ZUTU 0x27
#define L_ZO 0x28
#define L_TAME 0x29
#define L_DAKE 0x2a
#define L_DANO 0x2b
#define L_DARAKE 0x2c
#define L_TUITE 0x2d
#define L_TUKI 0x2e
#define L_TUTU 0x2f
#define L_TUMORI 0x30
#define L_TE1 0x31
#define L_TE2 0x32
#define L_TERU 0x33
#define L_DEAROU 0x34
#define L_DERU 0x35
#define L_TO1 0x36
#define L_TO2 0x37
#define L_TOTTE 0x38
#define L_TOIU 0x39
#define L_TOORI 0x3a
#define L_TOKI 0x3b
#define L_TOKORO 0x3c
#define L_TOTE 0x3d
#define L_TOHAIE 0x3e
#define L_TOMO 0x3f
#define L_DO 0x40
#define L_DOORI 0x41
#define L_DOKORO 0x42
#define L_DOKOROKA 0x43
#define L_DOMO 0x44
#define L_NA1 0x45
#define L_NAA 0x46
#define L_NAGARA 0x47
#define L_NAZO 0x48
#define L_NADO 0x49
#define L_NARI 0x4a
#define L_NANKA 0x4b
#define L_NANZO 0x4c
#define L_NANTE 0x4d
#define L_NI1 0x4e
#define L_NI2 0x4f
#define L_NI3 0x50
#define L_NITE 0x51
#define L_NIMO 0x52
#define L_NE1 0x53
#define L_NEE 0x54
#define L_NO1 0x55
#define L_NO2 0x56
#define L_NODE 0x57
#define L_NONI 0x58
#define L_NOMI 0x59
#define L_NOMINRZ 0x5a
#define L_HA 0x5b
#define L_HAZU 0x5c
#define L_BA 0x5d
#define L_BAKARI 0x5e
#define L_HE 0x5f
#define L_HOU 0x60
#define L_HOKA 0x61
#define L_HODO 0x62
#define L_MADE 0x63
#define L_MAMA 0x64
#define L_MO1 0x65
#define L_MO2 0x66
#define L_MOTTE 0x67
#define L_MONO 0x68
#define L_YA1 0x69
#define L_YA2 0x6a
#define L_YARA 0x6b
#define L_YUE 0x6c
#define L_YO 0x6d
#define L_YORI 0x6e
#define L_WA 0x6f
#define L_WAKE 0x70
#define L_WANE 0x71
#define L_WAYO 0x72
#define L_NN1 0x73
#define L_JYA 0x74
#define L_TYA 0x75
#define L_NAGARA2 0x76
#define L_WO_S 0x77
#define L_ZE 0x79
#define L_KKE 0x7a
#define L_N_SI 0x7b
#define L_DEHA 0x7c
#define L_GOTOSI 0x81
#define L_SASERU 0x82
#define L_ZARU 0x83
#define L_ZU 0x84
#define L_ZUNBA 0x85
#define L_SERU 0x86
#define L_SOUDA 0x87
#define L_YOUTAI 0x88
#define L_DENBUN 0x89
#define L_TA 0x8a
#define L_TAI 0x8b
#define L_TAGARU 0x8c
#define L_TARU 0x8d
#define L_DA1 0x8e
#define L_DA2 0x8f
#define L_DAXTU 0x90
#define L_DAROU 0x91
#define L_DE 0x92
#define L_DESI 0x93
#define L_DESHO 0x94
#define L_DESU 0x95
#define L_NA2 0x96
#define L_NARA 0x97
#define L_NAI 0x98
#define L_NU 0x99
#define L_NE2 0x9a
#define L_NN2 0x9b
#define L_FUUDA 0x9c
#define L_BESI 0x9d
#define L_MAI 0x9e
#define L_MASU 0x9f
#define L_MASURE 0xa0
#define L_MASE 0xa1
#define L_MITAIDA 0xa2
#define L_YOU 0xa3
#define L_YOUDA 0xa4
#define L_RASII 0xa5
#define L_RARERU 0xa6
#define L_RERU 0xa7
#define L_SITE 0xa8
#define L_YOUGEN 0xa9
#define L_ARU 0xaa
#define L_ARA 0xab
#define L_ARI1 0xac
#define L_ARI2 0xad
#define L_ARI3 0xae
#define L_ARE1 0xaf
#define L_ARE2 0xb0
#define L_AROU 0xb1
#define L_II 0xb2
#define L_ITASI 0xb3
#define L_ITADAKU 0xb4
#define L_IRU 0xb5
#define L_ERU 0xb6
#define L_KAKERU 0xb7
#define L_KANERU 0xb8
#define L_KARAZU 0xb9
#define L_GATAI 0xba
#define L_GATIDA 0xbb
#define L_KUDASARU 0xbc
#define L_GOZAI 0xbd
#define L_SA1 0xbe
#define L_SI1 0xbf
#define L_SIRO 0xc0
#define L_JYAU 0xc1
#define L_JIMAU 0xc2
#define L_SUGIRU 0xc3
#define L_SUBESI 0xc4
#define L_SURU 0xc5
#define L_SURE 0xc6
#define L_SE 0xc7
#define L_SEYO 0xc8
#define L_TAMAU 0xc9
#define L_TYAU 0xca
#define L_TIMAU 0xcb
#define L_DEKIRU 0xcc
#define L_NARU 0xcd
#define L_NASAI 0xce
#define L_NASARU 0xcf
#define L_NIKUI 0xd0
#define L_YASUI 0xd1
#define L_YOI 0xd2
#define L_YORU 0xd3
#define L_TTARASII 0xd4
#endif

74
include/sj4core/sj_prty.h Normal file
View file

@ -0,0 +1,74 @@
/*
* Copyright (c) 1991-1994 Sony Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Sony Corporation
* shall not be used in advertising or otherwise to promote the sale, use
* or other dealings in this Software without prior written authorization
* from Sony Corporation.
*
*/
/*
* $SonyRCSfile: sj_prty.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:13 $
*/
#ifndef _SJ_PRIORITY
#define _SJ_PRIORITY
#define RENTAI 0x10
#define GETPRI 0x0f
#define P_FUKA 1
#define P_TANKAN 1
#define P_SHUUSI 2
#define P_MEIREI 2
#define P_KATEI 2
#define P_KAMEI 2
#define P_DAIMEISI 4
#define P_MEISI 6
#define P_KEISIKI 4
#define P_RENYOU_F 3
#define P_RENYOU_J 11
#define P_RENYOU_M 12
#define P_JOSHI_F 3
#define P_JOSHI_E 4
#define P_JOSHI_D 6
#define P_JOSHI_C 7
#define P_JOSHI_B 8
#define P_JOSHI_A 9
#define P_SETTOU 6
#define P_SETUBI 6
#define P_SUUSI 4
#define P_FUKUSI 13
#define P_F_FUKUSI 10
#define P_RENTAISI 10
#define P_KANDOU 6
#define P_SETUZOKU 14
#define P_FZKKGU 9
#define P_JOSUUSI 10
#endif

439
include/sj4core/sj_rename.h Normal file
View file

@ -0,0 +1,439 @@
/*
* Copyright (c) 1991-1994 Sony Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Sony Corporation
* shall not be used in advertising or otherwise to promote the sale, use
* or other dealings in this Software without prior written authorization
* from Sony Corporation.
*
*/
/*
* $SonyRCSfile: sj_rename.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:14 $
*/
#ifndef _SJ_RENAME
#define _SJ_RENAME
#define adddic Jadddic
#define checksub Jchecksub
#define checkdict Jcheckdict
#define cal_nextym Jcal_nextym
#define cmpknj Jcmpknj
#define usr_freelen Jusr_freelen
#define sprt_seg Jsprt_seg
#define apnd_uidx Japnd_uidx
#define set_size Jset_size
#define isvyomi Jisvyomi
#define isvknj Jisvknj
#define isgrm Jisgrm
#define addel_arg Jaddel_arg
#define yomi2kata Jyomi2kata
#define top_strcmp Jtop_strcmp
#define last_strcmp Jlast_strcmp
#define cvtknj Jcvtknj
#define srchkana Jsrchkana
#define srchgram Jsrchgram
#define srchkanji Jsrchkanji
#define count_uidx Jcount_uidx
#define chg_uidx Jchg_uidx
#define cl2knj Jcl2knj
#define nextcl Jnextcl
#define nextrecblk Jnextrecblk
#define prevcl Jprevcl
#define prevrecblk Jprevrecblk
#define initkbuf Jinitkbuf
#define selectnum Jselectnum
#define kouhonum Jkouhonum
#define clstudy Jclstudy
#define delcldata Jdelcldata
#define delclsub Jdelclsub
#define delclold Jdelclold
#define srchclpos Jsrchclpos
#define mkclidx Jmkclidx
#define cvtclknj Jcvtclknj
#define cvtdict Jcvtdict
#define cvtminasi Jcvtminasi
#define cvtwakachi Jcvtwakachi
#define cvtphknj Jcvtphknj
#define cvtkouho Jcvtkouho
#define setstyrec Jsetstyrec
#define deldic Jdeldic
#define del_douon Jdel_douon
#define del_segment Jdel_segment
#define del_uidx Jdel_uidx
#define del_stdy Jdel_stdy
#define get_askknj Jget_askknj
#define seldict Jseldict
#define sel_udict Jsel_udict
#define get_idxofs Jget_idxofs
#define get_idxptr Jget_idxptr
#define fzkstrcmp Jfzkstrcmp
#define setclrec Jsetclrec
#define fzkcnct Jfzkcnct
#define srchfzk Jsrchfzk
#define getkan_none Jgetkan_none
#define getkan_hira Jgetkan_hira
#define getkan_kata Jgetkan_kata
#define getkan_knj Jgetkan_knj
#define getkan_ofs Jgetkan_ofs
#define getkan_norm Jgetkan_norm
#define code2kanji Jcode2kanji
#define getkanji Jgetkanji
#define getrank Jgetrank
#define setstynum Jsetstynum
#define setnspr Jsetnspr
#define regetrank Jregetrank
#ifdef SJ4_GLOBAL
#define work_base Jwork_base
#define stdy_base Jstdy_base
#else
#define work_base (ctx->work)
#define stdy_base (ctx->stdy)
#endif
#define maxjptr (work_base->Jmaxjptr)
#define maxclptr (work_base->Jmaxclptr)
#define jrt1st (work_base->Jjrt1st)
#define clt1st (work_base->Jclt1st)
#define jrt2nd (work_base->Jjrt2nd)
#define clt2nd (work_base->Jclt2nd)
#define selcl (work_base->Jselcl)
#define selectid (work_base->Jselectid)
#define trank (work_base->Jtrank)
#define nrank (work_base->Jnrank)
#define buninf (work_base->Jbuninf)
#define buncnt (work_base->Jbuncnt)
#define knjnew (work_base->Jknjnew)
#define knjidx (work_base->Jknjidx)
#define knjmax (work_base->Jknjmax)
#define score (work_base->Jscore)
#define pathnum (work_base->Jpathnum)
#define usedpath (work_base->Jusedpath)
#define inputyomi (work_base->Jinputyomi)
#define cnvstart (work_base->Jcnvstart)
#define cnvlen (work_base->Jcnvlen)
#define ystart (work_base->Jystart)
#define hyomi (work_base->Jhyomi)
#define orgyomi (work_base->Jorgyomi)
#define kanjibuf (work_base->Jkanjibuf)
#define kanjipos (work_base->Jkanjipos)
#define kanjitmp (work_base->Jkanjitmp)
#define kanjilen (work_base->Jkanjilen)
#define dicinl (work_base->Jdicinl)
#define dicsaml (work_base->Jdicsaml)
#define prevseg (work_base->Jprevseg)
#define fzkcount (work_base->Jfzkcount)
#define fzk_ka_flg (work_base->Jfzk_ka_flg)
#define fzktbl (work_base->Jfzktbl)
#define headcode (work_base->Jheadcode)
#define headlen (work_base->Jheadlen)
#define gobilen (work_base->Jgobilen)
#define prevclgrm (work_base->Jprevclgrm)
#define prevclrow (work_base->Jprevclrow)
#define nextcllen (work_base->Jnextcllen)
#define khcount (work_base->Jkhcount)
#define nkhcount (work_base->Jnkhcount)
#define kouhotbl (work_base->Jkouhotbl)
#define stdytop (work_base->Jstdytop)
#define curdict (work_base->Jcurdict)
#define dictlist (work_base->Jdictlist)
#define dicbuf (work_base->Jdicbuf)
#define idxbuf (work_base->Jidxbuf)
#define idxofs (work_base->Jidxofs)
#define askknj (work_base->Jaskknj)
#define askknj_k (work_base->Jaskknj_k)
#define grp_ptr (work_base->Jgrp_ptr)
#define grp_seg (work_base->Jgrp_seg)
#define grp_grp (work_base->Jgrp_grp)
#define suuji_wbuf (work_base->Jsuuji_wbuf)
#define suuji_ubuf (work_base->Jsuuji_ubuf)
#define suuji_class (work_base->Jsuuji_class)
#define suuji_comma (work_base->Jsuuji_comma)
#define suuji_keta (work_base->Jsuuji_keta)
#define suuji_yptr (work_base->Jsuuji_yptr)
#define suuji_len (work_base->Jsuuji_len)
#define suuji_exit (work_base->Jsuuji_exit)
#define suuji_wkeep (work_base->Jsuuji_wkeep)
#define suuji_ukeep (work_base->Jsuuji_ukeep)
#define peepyomi (work_base->Jpeepyomi)
#define peepknj (work_base->Jpeepknj)
#define peepgrm (work_base->Jpeepgrm)
#define peepdptr (work_base->Jpeepdptr)
#define peephptr (work_base->Jpeephptr)
#define peepkptr (work_base->Jpeepkptr)
#define peepidx (work_base->Jpeepidx)
#define seg_count Jseg_count
#define mkidxtbl Jmkidxtbl
#define initwork Jinitwork
#define alloccontext Jalloccontext
#define free_context Jfree_context
#define free_jlst Jfree_jlst
#define free_clst Jfree_clst
#define free_clall Jfree_clall
#define free_jall Jfree_jall
#define freework Jfreework
#define free_kjall Jfree_kjall
#define set2nd Jset2nd
#define mk2claus Jmk2claus
#define mkbunsetu Jmkbunsetu
#define argclrec Jargclrec
#define mkjiritu Jmkjiritu
#define dic_mu Jdic_mu
#define argjrec Jargjrec
#define dic_cl Jdic_cl
#define mkkouho Jmkkouho
#define getkhtbl Jgetkhtbl
#define cl_kanji Jcl_kanji
#define sameknj Jsameknj
#define skipatr Jskipatr
#define diffknj Jdiffknj
#define chrck_numtbl Jchrck_numtbl
#define sel_sjmode Jsel_sjmode
#define cl_numcmn Jcl_numcmn
#define word2char Jword2char
#define words2num Jwords2num
#define num_type00 Jnum_type00
#define num_type01 Jnum_type01
#define num_type02 Jnum_type02
#define num_type03 Jnum_type03
#define num_type04 Jnum_type04
#define num_type05 Jnum_type05
#define num_type06 Jnum_type06
#define num_type07 Jnum_type07
#define kan_num Jkan_num
#define num_type08 Jnum_type08
#define num_type09 Jnum_type09
#define num_type10 Jnum_type10
#define num_type11 Jnum_type11
#define num_type12 Jnum_type12
#define num_kurai Jnum_kurai
#define num_type13 Jnum_type13
#define num_type14 Jnum_type14
#define getusr Jgetusr
#define nextusr Jnextusr
#define prevusr Jprevusr
#define set_kanji Jset_kanji
#define set_buf Jset_buf
#define prev_kanji Jprev_kanji
#define prev_hinsi Jprev_hinsi
#define prev_douon Jprev_douon
#define next_kanji Jnext_kanji
#define next_hinsi Jnext_hinsi
#define next_douon Jnext_douon
#define add_yomi Jadd_yomi
#define cd2sjh_chr Jcd2sjh_chr
#define ph2knj Jph2knj
#define ph_setsty Jph_setsty
#define nextkptr Jnextkptr
#define maxpset Jmaxpset
#define mkknjmax Jmkknjmax
#define ph_khtbl Jph_khtbl
#define isfukusi Jisfukusi
#define istaigen Jistaigen
#define taicnt Jtaicnt
#define sttcnt Jsttcnt
#define priority Jpriority
#define pritiny Jpritiny
#define selclrec Jselclrec
#define initknjall Jinitknjall
#define knjtouroku Jknjtouroku
#define knjitti Jknjitti
#define hikakusub Jhikakusub
#define knjhikaku Jknjhikaku
#define setgroupai Jsetgroupai
#define select_dsub Jselect_dsub
#define select_tsub Jselect_tsub
#define select_ysub Jselect_ysub
#define selectknj Jselectknj
#define selknj Jselknj
#define cnjstrcmp Jcnjstrcmp
#define cnvrow Jcnvrow
#define setconj Jsetconj
#define setj_atrb Jsetj_atrb
#define setj_ofs Jsetj_ofs
#define setj_knj Jsetj_knj
#define setj_norm1 Jsetj_norm1
#define setj_norm2 Jsetj_norm2
#define chkhead Jchkhead
#define setjrec Jsetjrec
#define setnumrec Jsetnumrec
#define setcrec Jsetcrec
#define setkouho Jsetkouho
#define ph_setkouho Jph_setkouho
#define hiraknj Jhiraknj
#define hiraknj_atrb Jhiraknj_atrb
#define hiraknj_ofs Jhiraknj_ofs
#define hiraknj_knj Jhiraknj_knj
#define hiraknj_hask Jhiraknj_hask
#define hiraknj_kask Jhiraknj_kask
#define hiraknj_norm Jhiraknj_norm
#define hiraknj_hira Jhiraknj_hira
#define getstb Jgetstb
#define setubi Jsetubi
#define sj2cd_chr Jsj2cd_chr
#define sj2cd_str Jsj2cd_str
#define retaiofs Jretaiofs
#define srchai2nd Jsrchai2nd
#define srchai1st Jsrchai1st
#define srchai4th Jsrchai4th
#define srchai3rd Jsrchai3rd
#define srchai6th Jsrchai6th
#define srchai5th Jsrchai5th
#define yomicmp_sub Jyomicmp_sub
#define yomicmp Jyomicmp
#define srchdict Jsrchdict
#define srchg_atrb Jsrchg_atrb
#define srchg_ofs Jsrchg_ofs
#define srchg_knj Jsrchg_knj
#define srchg_norm1 Jsrchg_norm1
#define srchg_norm2 Jsrchg_norm2
#define srchgrp2nd Jsrchgrp2nd
#define srchgrp1st Jsrchgrp1st
#define srchhead Jsrchhead
#define srchidx Jsrchidx
#define srch_josuu_sub Jsrch_josuu_sub
#define srch_josuu Jsrch_josuu
#define setnrec_sub Jsetnrec_sub
#define setnrec Jsetnrec
#define srchtbl Jsrchtbl
#define isconnect Jisconnect
#define string_cmp Jstring_cmp
#define check_num Jcheck_num
#define srch_number1 Jsrch_number1
#define srch_kurai1 Jsrch_kurai1
#define srch_kurai2 Jsrch_kurai2
#define srch_number2 Jsrch_number2
#define srchnum_sub Jsrchnum_sub
#define srchnum Jsrchnum
#define setwdnum Jsetwdnum
#define setucnum Jsetucnum
#define study Jstudy
#define srchstdy Jsrchstdy
#define terminate Jterminate
#define wakachi Jwakachi
#define cmpstr Jcmpstr
#define hzstrlen Jhzstrlen
#define istrcmp Jistrcmp
#define mvmemd Jmvmemd
#define mvmemi Jmvmemi
#define skiphblk Jskiphblk
#define skipkstr Jskipkstr
#define sstrcmp Jsstrcmp
#define sstrlen Jsstrlen
#define sstrncmp Jsstrncmp
#define charsize Jcharsize
#define chrtbl Jchrtbl
#define conjadr Jconjadr
#define connadr Jconnadr
#define rigtadr Jrigtadr
#define cvtnum_func Jcvtnum_func
#define getkan_func Jgetkan_func
#define setjrec_func Jsetjrec_func
#define srchg_func Jsrchg_func
#define hiraknj_func Jhiraknj_func
#define fzkadr Jfzkadr
#define taipri Jtaipri
#define sttpri Jsttpri
#define kigou Jkigou
#define selsjadrs Jselsjadrs
#define stbadr Jstbadr
#define settou_ptr Jsettou_ptr
#define scncttbl Jscncttbl
#define suuji_tbl Jsuuji_tbl
#define kurai1_tbl Jkurai1_tbl
#define kurai2_tbl Jkurai2_tbl
#define num1tbl Jnum1tbl
#define num2tbl Jnum2tbl
#define num3tbl Jnum3tbl
#define num4tbl Jnum4tbl
#define num5tbl Jnum5tbl
#define num6tbl Jnum6tbl
#define termtbl Jtermtbl
#endif

323
include/sj4core/sj_right.h Normal file
View file

@ -0,0 +1,323 @@
/*
* Copyright (c) 1991-1994 Sony Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Sony Corporation
* shall not be used in advertising or otherwise to promote the sale, use
* or other dealings in this Software without prior written authorization
* from Sony Corporation.
*
*/
/*
* $SonyRCSfile: sj_right.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:15 $
*/
#ifndef _SJ_RIGHT
#define _SJ_RIGHT
#define R_DE 1
#define R_WO 2
#define R_KARA1 3
#define R_GA1 4
#define R_TO1 5
#define R_NI1 6
#define R_NO1 7
#define R_HA 8
#define R_HE 9
#define R_MO1 10
#define R_YA1 11
#define R_YORI1 12
#define R_SAE 13
#define R_SIKA 14
#define R_DAKE 15
#define R_I 16
#define R_E 17
#define R_KAKE 18
#define R_KANE2 19
#define R_SUGI 20
#define R_DEKI 21
#define R_MI 22
#define R_SASE 23
#define R_RARE 24
#define R_ITADAKE 25
#define R_EXP 26
#define R_RENYOU1 27
#define R_RENYOU5 28
#define R_SA5RENYOU1 29
#define R_RENYOU3 30
#define R_RENYOU7 31
#define R_SA5RENYOU3 32
#define R_RENYOU4 33
#define R_RENYOU8 34
#define R_SA5RENYOU4 35
#define R_KRENYOU 39
#define R_DRENYOU1 40
#define R_DRENYOU2 41
#define R_DRENYOU3 42
#define R_ONBIN1 43
#define R_ONBIN2 44
#define R_ONBIN3 45
#define R_DESHI 46
#define R_AXTU 47
#define R_ONBIN6 48
#define R_ONBIN8 49
#define R_ARI1 50
#define R_ARI2 51
#define R_ARI3 52
#define R_IKI 53
#define R_ITASI 54
#define R_ITADAKI 55
#define R_ORI2 56
#define R_GATAKU 57
#define R_KI 58
#define R_KUDASAI 59
#define R_GOZAI 60
#define R_GOTOKU 61
#define R_BEKU 62
#define R_SOUDE 63
#define R_SOUNI 64
#define R_TAGARI 65
#define R_TAKU 66
#define R_MIZEN1 67
#define R_NAIDE 68
#define R_NAKU 69
#define R_NASAI 70
#define R_FUUNI 71
#define R_YORI2 72
#define R_RASHUU 73
#define R_DSHUUSI1 74
#define R_DSHUUSI2 75
#define R_GOTOSI 76
#define R_BESI 77
#define R_ZU 78
#define R_SOUDA 79
#define R_MAI 80
#define R_MITAIDA 81
#define R_SHUUSI 82
#define R_KSHUUSI 83
#define R_ZARU 84
#define R_SOUDESU 85
#define R_TA 86
#define R_TAI 87
#define R_DESU 88
#define R_NAI 89
#define R_NU 90
#define R_MASU 91
#define R_NN2 92
#define R_RASII 93
#define R_DRENTAI1 94
#define R_DRENTAI2 95
#define R_DRENTAI3 96
#define R_KRENTAI 97
#define R_GOTOKI 98
#define R_BEKI 99
#define R_SOUNA1 100
#define R_SOUNA2 101
#define R_NA2 102
#define R_KATEI1 103
#define R_KATEI2 104
#define R_KATEI3 105
#define R_KAMEI 106
#define R_IKE 107
#define R_KURE 108
#define R_MEIREI1 109
#define R_MEIREI2 110
#define R_DGOKAN 111
#define R_KGOKAN 112
#define R_SGOKAN 113
#define R_GATI 114
#define R_JYA 115
#define R_SOU 116
#define R_MITAI 117
#define R_YOTTE 118
#define R_YOU2 119
#define R_SHO 120
#define R_FZKMEISI 121
#define R_AISATU 122
#define R_KOSODO 123
#define R_YOU1 124
#define R_HASI 125
#define R_DAIMEISI 126
#define R_DAIMEISI6 127
#define R_FZKKI 128
#define R_DEHA 129
#define R_NAGARA2 130
#define R_WO_S 131
#define R_WO_MEISI 132
#define R_SITE 133
#define R_N_SI 134
#define R_F_FUKUSI 135
#define R_CUT 137
#define R_MIZEN2 140
#define R_MIZEN3 141
#define R_MIZEN4 142
#define R_SI1 143
#define R_JI 144
#define R_AGE 145
#define R_MIZEN5 146
#define R_AROU 147
#define R_KAROU 148
#define R_DAROU 149
#define R_DESHOU 150
#define R_KO 151
#define R_BEKARA 152
#define R_TAGARA 153
#define R_SHUUJO 154
#define R_TTATTE 155
#define R_TTARA 156
#define R_TTE1 157
#define R_TTE2 158
#define R_PPANASI 159
#define R_PPOI 160
#define R_UE 161
#define R_UTI 162
#define R_OITE 163
#define R_OKERU 164
#define R_ORI1 165
#define R_KA1 166
#define R_KA2 167
#define R_KATAGATA 168
#define R_KADOUKA 169
#define R_KAMO 170
#define R_KARA2 171
#define R_GA2 172
#define R_GATERA 173
#define R_KIRI 174
#define R_KUSENI 175
#define R_KURAI 176
#define R_GURUMI 177
#define R_KEDO 178
#define R_KOSO 179
#define R_KOTO 180
#define R_SI2 181
#define R_SURA 182
#define R_ZUTU 183
#define R_TAME 184
#define R_TARI 185
#define R_DANO 186
#define R_DARAKE 187
#define R_TUITE 188
#define R_TUKI 189
#define R_TUTU 190
#define R_TUMORI 191
#define R_TE1 192
#define R_TE2 193
#define R_TERU 194
#define R_TO2 195
#define R_TOTTE 196
#define R_TOIU 197
#define R_TOORI 198
#define R_TOKI 199
#define R_TOKORO 200
#define R_TOTE 201
#define R_TOHAIE 202
#define R_TOMO 203
#define R_DO 204
#define R_DOORI 205
#define R_DOKORO 206
#define R_DOKOROKA 207
#define R_DOMO 208
#define R_NAGARA 209
#define R_NAZO 210
#define R_NADO 211
#define R_NARI 212
#define R_NANKA 213
#define R_NANZO 214
#define R_NANTE 215
#define R_NI2 216
#define R_NI3 217
#define R_NITE 218
#define R_NIMO 219
#define R_NO2 220
#define R_NODE 221
#define R_NONI 222
#define R_NOMI 223
#define R_NOMINRZ 224
#define R_HAZU 225
#define R_BA 226
#define R_BAKARI 227
#define R_HOU 228
#define R_HOKA 229
#define R_HODO 230
#define R_MADE 231
#define R_MAMA 232
#define R_MO2 233
#define R_MOTTE 234
#define R_MONO 235
#define R_YA2 236
#define R_YARA 237
#define R_YUE 238
#define R_WAKE 239
#define R_NN1 240
#define R_SUUSI 241
#define R_SETUZOKU 242
#define R_KANDOU 243
#define R_SETTOU 244
#define R_FUKUSI 245
#define R_FZKKGU 246
#define R_MEISI 247
#define R_DMEISI 248
#define R_SMEISI1 249
#define R_SMEISI2 250
#define R_KSTB 251
#define R_ICHISETUBI 252
#define R_JOSUUSI 253
#define R_RENTAISI 254
#define R_TANKAN 255
#endif

168
include/sj4core/sj_struct.h Normal file
View file

@ -0,0 +1,168 @@
/*
* Copyright (c) 1991-1994 Sony Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Sony Corporation
* shall not be used in advertising or otherwise to promote the sale, use
* or other dealings in this Software without prior written authorization
* from Sony Corporation.
*
*/
/*
* $SonyRCSfile: sj_struct.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:16 $
*/
#ifndef _SJ_STRUCT
#define _SJ_STRUCT
typedef struct jiritu {
struct jiritu* jsort;
TypeDicSeg jseg;
TypeDicOfs jofsst;
TypeDicOfs jofsed;
u_short flags;
TypeClass class;
TypeDicID dicid;
u_char jlen;
TypeGram hinsi;
u_char sttofs;
u_char stbofs;
u_char count;
u_char numlen;
} JREC;
typedef struct bunsetu {
JREC* jnode;
struct bunsetu* clsort;
u_char gobiln;
u_char cllen;
TypeCnct right;
u_char cl2len;
u_char kubun;
#if __STDC__
unsigned fzk_ka : 1;
#else
u_char fzk_ka : 1;
#endif
} CLREC;
typedef struct kouho {
CLREC* clrec;
TypeDicOfs offs;
TypeStyNum styno;
u_char rank;
#if __STDC__
unsigned sttfg : 1;
unsigned sttkj : 1;
unsigned ka_fg : 1;
unsigned ka_kj : 1;
unsigned mode : 4;
#else
u_char sttfg : 1;
u_char sttkj : 1;
u_char ka_fg : 1;
u_char ka_kj : 1;
u_char mode : 4;
#endif
} KHREC;
typedef struct conj {
u_char len;
TypeCnct right;
} CREC;
typedef struct fuzoku {
u_char* yomip;
u_char* fzkp;
} FREC;
typedef struct study_in {
TypeDicOfs offset;
TypeDicSeg seg;
TypeStyNum styno;
TypeDicID dicid;
#if __STDC__
unsigned sttkj : 1;
unsigned ka_kj : 1;
unsigned nmflg : 1;
#else
u_char sttkj : 1;
u_char ka_kj : 1;
u_char nmflg : 1;
#endif
} STDYIN;
typedef struct study_out {
STDYIN stdy1;
TypeGram hinshi;
u_char len;
#if __STDC__
unsigned sttlen : 2;
unsigned sttfg : 1;
unsigned ka_fg : 1;
#else
u_char sttlen : 2;
u_char sttfg : 1;
u_char ka_fg : 1;
#endif
} STDYOUT;
typedef struct dict {
TypeDicID dicid;
TypeIdxOfs idxlen;
TypeDicOfs seglen;
TypeDicSeg segunit;
TypeDicSeg maxunit;
IFuncDict getofs;
IFuncDict getidx;
IFunc getdic;
IFunc putidx;
IFunc putdic;
IFunc rszdic;
} DICT;
typedef struct dictl {
DICT* dict;
struct dictl* next;
} DICTL;
typedef struct stdy {
short stdycnt;
short stdymax;
STDYIN* stdydic;
short clstdystep;
u_short* clstdyidx;
short clstdylen;
u_char* clstdydic;
} STDY;
#endif

View file

@ -0,0 +1,90 @@
/*
* Copyright (c) 1991-1994 Sony Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Sony Corporation
* shall not be used in advertising or otherwise to promote the sale, use
* or other dealings in this Software without prior written authorization
* from Sony Corporation.
*
*/
/*
* $SonyRCSfile: sj_study.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:18 $
*/
#ifndef _SJ_STUDY
#define _SJ_STUDY
#define StudyExist() (stdy_base)
#define STUDYCOUNT (stdy_base->stdycnt)
#define STUDYMAX (stdy_base->stdymax)
#define STUDYDICT (stdy_base->stdydic)
#define CLSTUDYIDX (stdy_base->clstdyidx)
#define CLSTUDYSTEP (stdy_base->clstdystep)
#define CLSTUDYLEN (stdy_base->clstdylen)
#define CLSTUDYDICT (stdy_base->clstdydic)
#define STUDYTAIL (STUDYDICT + STUDYMAX)
#define STUDYRECSIZE (sizeof(STDYIN))
#define CLSTUDYTAIL (CLSTUDYDICT + CLSTUDYLEN)
#define STUDYNORMEND 0
#define STUDYNODICT 1
#define STUDYFULLAREA 2
#define STUDYNOTSTUDY 3
#define STUDYERROR 4
#define CLSTDY_TMPLEN 256
#define CLSTUDYNORMEND 0
#define CLSTUDYNODICT 1
#define CLSTUDYPARAERR 2
#define CLSTUDYYOMIERR 3
#define CLSTUDYNOAREA 4
#define CL_YLEN 0
#define CL_GRAM2 1
#define CL_Y1LEN 2
#define CL_NUMH 3
#define CL_NUML 4
#define CL_YDATA 5
#define CL_HDLEN 5
#define iseocl(p) (!ClYomiLen(p) || (u_char*)(p) >= CLSTUDYTAIL)
#define ClGramCode(p) *((p) + CL_GRAM2)
#define ClYomiLen(p) *((p) + CL_YLEN)
#define ClYomi1Len(p) *((p) + CL_Y1LEN)
#define ClHighNum(p) *(p + CL_NUMH)
#define ClLowNum(p) *(p + CL_NUML)
#define ClGetNum(p) (ClHighNum(p) * 0x100 + ClLowNum(p))
#define ClSetNum(p, n) (ClHighNum(p) = (u_char)((n) >> 8), ClLowNum(p) = (u_char)(n))
#define ClYomiPos(p) ((p) + CL_YDATA)
#define ClBlkLen(p) (ClYomiLen(p) + CL_HDLEN)
#define ClNextTag(p) ((p) + ClBlkLen(p))
#endif

122
include/sj4core/sj_suuji.h Normal file
View file

@ -0,0 +1,122 @@
/*
* Copyright (c) 1991-1994 Sony Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Sony Corporation
* shall not be used in advertising or otherwise to promote the sale, use
* or other dealings in this Software without prior written authorization
* from Sony Corporation.
*
*/
/*
* $SonyRCSfile: sj_suuji.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:19 $
*/
#ifndef _SJ_SUUJI
#define _SJ_SUUJI
#define SJTBLRECLEN 6
#define SJTBLRECNUM 34
#define SjTblYPos(p) (p)
#define SJTBLYLEN 3
#define SjTblModeP(p) ((p) + 3)
#define SjTblNumber(md) ((md) & 0x0f)
#define SJTBLNARABIAF 0x80
#define SJTBLNYOMIF 0x40
#define SJTBLNNARABIF 0x20
#define SJTBLNNANSUUF 0x10
#define SjTblNCont(md) ((md) & SJTBLNCONTF)
#define SjTblCnctP(p) ((p) + 4)
#define KR1TBLRECLEN 5
#define KR1TBLRECNUM 10
#define Kr1TblYPos(p) (p)
#define KR1TBLYLEN 3
#define Kr1TblModeP(p) ((p) + 3)
#define KR1TBLTOPF 0x80
#define Kr1TblTop(md) ((md) & KR1TBLTOPF)
#define Kr1TblKeta(md) (((md) >> 4) & 7)
#define Kr1TblCnct(md) ((md) & 0x0f)
#define Kr1TblCnctP(p) ((p) + 3)
#define KR2TBLRECLEN 4
#define KR2TBLRECNUM 3
#define Kr2TblYPos(p) (p)
#define KR2TBLYLEN 3
#define Kr2TblModeP(p) ((p) + 3)
#define Kr2TblCnct(md) ((md) & 0x0f)
#define Kr2TblKeta(md) (((md) >> 4) & 0x0f)
#define _NUM0 0x01
#define _NUM1 0x02
#define _NUM2 0x03
#define _NUM3 0x04
#define _NUM4 0x05
#define _NUM5 0x06
#define _NUM6 0x07
#define _NUM7 0x08
#define _NUM8 0x09
#define _NUM9 0x0a
#define _NUM1S 0x0b
#define _NUMS 0x0c
#define _NUMN 0x0d
#define COMMAHIGH 0xa1
#define COMMALOW 0xa4
#define SELARB 1
#define SELARB0 2
#define SELARBCMA 3
#define SELKANSJ0 5
#define SELKANSJ20 8
#define SELKANSJYM 9
#define SELKANSJYM2 10
#define SELLONGARB 11
#define SELLONGARBCMA 12
#define SELLONGSJ 13
#define SELARBKR 14
#define SELKANSJKR 15
#define SELNUMTERM 0xffff
#define SELKANSJ 4
#define SELKANSJ2 7
#define SELKANSJCMA 6
#define SELNUM0123 (JFLAG_N01 | JFLAG_N23)
#define SELNUM1_23_10_1 (JFLAG_N_1 | JFLAG_N23 | JFLAG_N10 | JFLAG_NS1)
#define SELNUMMUST (JFLAG_NK2 | JFLAG_NK4 | JFLAG_NN0 | JFLAG_NSN)
#define SELNUMALL (JFLAG_N10 | JFLAG_N_1 | JFLAG_NS1 | JFLAG_N01 | JFLAG_N23 | JFLAG_NK2 | JFLAG_NK4 | JFLAG_NN0 | JFLAG_NSN)
#define SelNumFunc(c) ((c) & (~SELNUMALL))
#define SelNumCond(c) ((c) & SELNUMALL)
#define NUMBER123456789NS ((1 << _NUM1) | (1 << _NUM2) | (1 << _NUM3) | (1 << _NUM4) | (1 << _NUM5) | (1 << _NUM6) | (1 << _NUM7) | (1 << _NUM8) | (1 << _NUM9) | (1 << _NUM1S) | (1 << _NUMN) | (1 << _NUMS))
#define NUMBER0 (1 << _NUM0)
#define NUMBER1 ((1 << _NUM1) | (1 << _NUM1S))
#define NUMBERS1 (1 << _NUM1S)
#define NUMBER01 (NUMBER0 | NUMBER1)
#define NUMBER23 ((1 << _NUM2) | (1 << _NUM3))
#endif

106
include/sj4core/sj_table.h Normal file
View file

@ -0,0 +1,106 @@
/*
* Copyright (c) 1991-1994 Sony Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Sony Corporation
* shall not be used in advertising or otherwise to promote the sale, use
* or other dealings in this Software without prior written authorization
* from Sony Corporation.
*
*/
/*
* $SonyRCSfile: sj_table.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:21 $
*/
#ifndef _SJ_TABLE
#define _SJ_TABLE
#define isdpnd(c) (Chrtbl[c] & DEPEND)
#define CnjAskLen(p) (((unsigned int)*(p) & 0x70) >> 4)
#define CnjNkrLen(p) (*(p) & 0x0f)
#define CnjRight(p) *(p + CnjNkrLen(p) + 1)
#define CnjRecLen(p) (CnjNkrLen(p) + 2)
#define FzkAskLen(p) ((unsigned int)*(p) >> 5)
#define FzkNkrLen(p) (*(p) & 0x07)
#define FzkStrKa(p) (((unsigned int)*(p) >> 3) & 1)
#define FzkHasCode(p) (*(p) & 0x10)
#define FzkLeft(p) (*((p) + nlen + 1))
#define FzkRight(p) (*((p) + nlen + 2))
#define SttYomiLen(p) (*(p) & 0x0f)
#define SttHiraKnj(p) (*(p) & 0x80)
#define StbKnjLen(p) (*(p) & 0x07)
#define StbYomiLen(p) (*(p) >> 4)
#define StbYomiTop(p) ((p) + 2)
#define StbBakeru(p) (*(p) & 0x08)
#define StbHinsi(p) (*((p) + 1))
#define Charsize charsize
#define Chrtbl chrtbl
#define Conjadr(i) conjadr[i]
#define Connadr connadr
#define Cvtnum_func cvtnum_func
#define Fzkadr(i) fzkadr[i]
#define Getkan_func getkan_func
#define Hiraknj_func hiraknj_func
#define Kigou kigou
#define Kurai1_tbl kurai1_tbl
#define Kurai2_tbl kurai2_tbl
#define Makekan_func makekan_func
#define Num1tbl num1tbl
#define Num2tbl num2tbl
#define Num3tbl num3tbl
#define Num4tbl num4tbl
#define Num5tbl num5tbl
#define Num6tbl num6tbl
#define Rigtadr(i) rigtadr[i]
#define Scncttbl(i, j) scncttbl[i][j]
#define Selsjadrs(i) selsjadrs[i]
#define Setjrec_func setjrec_func
#define Settou_ptr(i) settou_ptr[i]
#define Srchg_func srchg_func
#define Stbadr(i) stbadr[i]
#define Sttpri(i, j) sttpri[i][j]
#define Suuji_tbl suuji_tbl
#define Taipri(i, j) taipri[i][j]
#define Termtbl termtbl
#endif

View file

@ -0,0 +1,82 @@
/*
* Copyright (c) 1991-1994 Sony Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Sony Corporation
* shall not be used in advertising or otherwise to promote the sale, use
* or other dealings in this Software without prior written authorization
* from Sony Corporation.
*
*/
/*
* $SonyRCSfile: sj_typedef.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:22 $
*/
#ifndef _SJ_TYPEDEF
#define _SJ_TYPEDEF
#include <stdlib.h>
#include <sys/types.h>
#define RECURS
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef void (*VFunc)(
#ifndef SJ4_GLOBAL
void*,
#endif
void*, void*, void*);
typedef u_char* (*UCPFunc)(
#ifndef SJ4_GLOBAL
void*,
#endif
u_char*, u_char*, int);
typedef int (*IFunc)(
#ifndef SJ4_GLOBAL
void*,
#endif
void*, int);
typedef int (*IFuncDict)(
#ifndef SJ4_GLOBAL
void*,
#endif
void*);
typedef u_char TypeGroup;
typedef u_char TypeGram;
typedef u_short TypeIdxOfs;
typedef short TypeDicSeg;
typedef u_short TypeDicOfs;
typedef ino_t TypeDicID;
typedef u_char TypeCnct;
typedef short TypeStyNum;
typedef u_char TypeClass;
typedef u_char TypeBunNum;
#endif

47
include/sj4core/sj_var.h Normal file
View file

@ -0,0 +1,47 @@
/*
* Copyright (c) 1991-1994 Sony Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Sony Corporation
* shall not be used in advertising or otherwise to promote the sale, use
* or other dealings in this Software without prior written authorization
* from Sony Corporation.
*
*/
/*
* $SonyRCSfile: sj_var.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:23 $
*/
#ifndef _SJ_VAR
#define _SJ_VAR
#define MAXKOUHONUMBER 255
#define MAXPHINPUTLEN 256
#define MAXCLINPUTLEN 64
#define MINCLOUTPUTLEN 512
#define MINPHOUTPUTLEN 288
#endif

213
include/sj4core/sj_yomi.h Normal file
View file

@ -0,0 +1,213 @@
/*
* Copyright (c) 1991-1994 Sony Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL SONY CORPORATION BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of Sony Corporation
* shall not be used in advertising or otherwise to promote the sale, use
* or other dealings in this Software without prior written authorization
* from Sony Corporation.
*
*/
/*
* $SonyRCSfile: sj_yomi.h,v $
* $SonyRevision: 1.1 $
* $SonyDate: 1994/06/03 08:01:24 $
*/
#ifndef _SJ_YOMICODE
#define _SJ_YOMICODE
#define _TYOUON 0x01
#define _IGETA 0x02
#define _ATTO 0x03
#define _YUUBIN 0x04
#define N_0 0x10
#define N_1 0x11
#define N_2 0x12
#define N_3 0x13
#define N_4 0x14
#define N_5 0x15
#define N_6 0x16
#define N_7 0x17
#define N_8 0x18
#define N_9 0x19
#define A_A 0x1A
#define A_B 0x1B
#define A_C 0x1C
#define A_D 0x1D
#define A_E 0x1E
#define A_F 0x1F
#define A_G 0x20
#define A_H 0x21
#define A_I 0x22
#define A_J 0x23
#define A_K 0x24
#define A_L 0x25
#define A_M 0x26
#define A_N 0x27
#define A_O 0x28
#define A_P 0x29
#define A_Q 0x2A
#define A_R 0x2B
#define A_S 0x2C
#define A_T 0x2D
#define A_U 0x2E
#define A_V 0x2F
#define A_W 0x30
#define A_X 0x31
#define A_Y 0x32
#define A_Z 0x33
#define A_a 0x34
#define A_b 0x35
#define A_c 0x36
#define A_d 0x37
#define A_e 0x38
#define A_f 0x39
#define A_g 0x3A
#define A_h 0x3B
#define A_i 0x3C
#define A_j 0x3D
#define A_k 0x3E
#define A_l 0x3F
#define A_m 0x40
#define A_n 0x41
#define A_o 0x42
#define A_p 0x43
#define A_q 0x44
#define A_r 0x45
#define A_s 0x46
#define A_t 0x47
#define A_u 0x48
#define A_v 0x49
#define A_w 0x4A
#define A_x 0x4B
#define A_y 0x4C
#define A_z 0x4D
#define _XA 0x4E
#define _A 0x4F
#define _XI 0x50
#define _I 0x51
#define _XU 0x52
#define _U 0x53
#define _XE 0x54
#define _E 0x55
#define _XO 0x56
#define _O 0x57
#define _KA 0x58
#define _GA 0x59
#define _KI 0x5A
#define _GI 0x5B
#define _KU 0x5C
#define _GU 0x5D
#define _KE 0x5E
#define _GE 0x5F
#define _KO 0x60
#define _GO 0x61
#define _SA 0x62
#define _ZA 0x63
#define _SI 0x64
#define _ZI 0x65
#define _SU 0x66
#define _ZU 0x67
#define _SE 0x68
#define _ZE 0x69
#define _SO 0x6A
#define _ZO 0x6B
#define _TA 0x6C
#define _DA 0x6D
#define _TI 0x6E
#define _DI 0x6F
#define _XTU 0x70
#define _TU 0x71
#define _DU 0x72
#define _TE 0x73
#define _DE 0x74
#define _TO 0x75
#define _DO 0x76
#define _NA 0x77
#define _NI 0x78
#define _NU 0x79
#define _NE 0x7A
#define _NO 0x7B
#define _HA 0x7C
#define _BA 0x7D
#define _PA 0x7E
#define _HI 0x7F
#define _BI 0x80
#define _PI 0x81
#define _HU 0x82
#define _BU 0x83
#define _PU 0x84
#define _HE 0x85
#define _BE 0x86
#define _PE 0x87
#define _HO 0x88
#define _BO 0x89
#define _PO 0x8A
#define _MA 0x8B
#define _MI 0x8C
#define _MU 0x8D
#define _ME 0x8E
#define _MO 0x8F
#define _XYA 0x90
#define _YA 0x91
#define _XYU 0x92
#define _YU 0x93
#define _XYO 0x94
#define _YO 0x95
#define _RA 0x96
#define _RI 0x97
#define _RU 0x98
#define _RE 0x99
#define _RO 0x9A
#define _XWA 0x9B
#define _WA 0x9C
#define _WI 0x9D
#define _WE 0x9E
#define _WO 0x9F
#define _NN 0xA0
#define _VU 0xA1
#define _XKA 0xA2
#define _XKE 0xA3
#define Y_KUTEN 0xF2
#define Y_TOUTEN 0xF3
#define Y_COMMA 0xF4
#define Y_PERIOD 0xF5
#define Y_QUOTA 0xF6
#define Y_BIKKURI 0xF7
#define Y_S_KIGOU1 0xF8
#define Y_S_KIGOU2 0xF9
#define Y_L_KAKKO 0xFA
#define Y_R_KAKKO 0xFB
#define Y_KIGOU 0xFC
#define Y_HANKAKU 0xFD
#define Y_ZENKAKU 0xFE
#define _NIL 0
#endif