Reference

js_kanren(3)

̾¾Î

js_kanren()	ϢʸÀáÊÑ´¹¤ò¹Ô¤¦¡£

·Á¼°

#include "jslib.h"
int
js_kanren(env,yomi,hinsi,fzk,vec,vec1,vec2,rb)
struct wnn_env *env;		/* ´Ä¶­ */
w_char *yomi;			/* ÆÉ¤ßÎó */
int hinsi;			/* ÉÊ»ìÈÖ¹æ */
w_char *fzk;			/* ÉÕ°¸ìʸ»úÎó */
int vec;			/* Àܳ¥Ù¥¯¥¿¡¼ */
int vec1;			/* Àܳ¥Ù¥¯¥¿¡¼ */
int vec2;			/* Àܳ¥Ù¥¯¥¿¡¼ */
struct wnn_ret_buf *rb;		/* ÊÑ´¹·ë²Ì¤òÊÖ¤¹¥¨¥ê¥¢¤Ø¤Î¥Ý¥¤¥ó¥¿ */

µ¡Ç½

ÆÉ¤ß yomi ¤òϢʸÀáÊÑ´¹¤·¡¢Âè°ì¸õÊä¤ÎÎó¤òÊÖ¤¹¡£

hinsi, fzk ¤Ï¡¢yomi ¤ÎʸÀá¤ÎÁ°¤ÎʸÀá¤ÎÉÊ»ìÈֹ桢ÉÕ°¸ìʸ»úÎó¤ò»ØÄꤹ¤ë¡£

ÉÊ»ìÈֹ桢ÉÕ°¸ìʸ»úÎó¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¡¢yomi ÀèÆ¬¤ÎʸÀá¤òÁ°¤ÎʸÀá¤ËÀܳ ¤Ç¤­¤ë¾®Ê¸ÀáÎó(Á°¤ÎʸÀá¤ò´Þ¤á¤ÆÂçʸÀá¤È¤Ê¤ë)¤È¤·¤ÆÊÑ´¹¤¹¤ë¡£

Á°¤ÎʸÀá¤ËÀܳ¤Ç¤­¤ë¸õÊ䤬̵¤¤¾ì¹ç¤Ï¡¢ÂçʸÀá¤ÎÀèÆ¬¤Ë¤Ê¤ì¤ë¤â¤Î¤òÊÖ¤¹¡£ ¤½¤ì¤â¤Ê¤¤¾ì¹ç¤Ï¡¢ÂçʸÀá¤ÎÀèÆ¬¤Ë¤Ê¤ì¤Ê¤¤¤â¤Î(¤½¤ÎÁ°¤Ë¡¢»ØÄꤷ¤¿ÉÊ»ì°Ê³° ¤ÎÉʻ줬¤³¤Ê¤¯¤Æ¤Ï¤¤¤±¤Ê¤¤¤â¤Î¡£¤¿¤È¤¨¤Ð¡¢hinsi ¤Ë̾»ì¤ò»ØÄꤷ¤¿¤È¤­¤Î ½õ¿ô»ì:½õ¿ô»ì¤ÎÁ°¤Ë¤Ï¡¢¿ô»ì¤¬¤­¤ÆÂçʸÀá¤È¤Ê¤ë)¤òÊÖ¤¹¡£

¤³¤Î¤¦¤Á¤É¤Î¸õÊ䤬Áª¤Ð¤ì¤¿¤«¤Ï¡¢rb->buf->sbn->status ¤ËÊÖ¤µ¤ì¤ë¡£

	    WNN_CONNECT		»ØÄꤵ¤ì¤¿(Éʻ졢ÉÕ°¸ì)¤ËÀܳ¤Ç¤­¤¿
	    WNN_SENTOU		ÂçʸÀá¤ÎÀèÆ¬
	    WNN_NOT_CONNECT	ÂçʸÀá¤ÎÀèÆ¬¤Ë¤Ê¤ì¤Ê¤¤¤·¡¢Á°¤ËÀܳ¤Ç¤­¤Ê¤¤
	    WNN_GIJI		µ¿»÷ʸÀá¤È¤·¤ÆÊÑ´¹¤·¤¿

Á°¤ÎʸÀá¤ËÉÕ°¸ì¤¬Ìµ¤¤¾ì¹ç¤Ï¡¢NULL ¤ò»ØÄꤹ¤ë¡£

Á°¤Î¾®Ê¸Àá¤È¤ÏÂçÊÌʸÀá¤È¤·¤ÆÊÑ´¹¤¹¤ë»þ¤Ï¡¢hinsi ¤Ë¡¢

	    WNN_BUN_SENTOU	(ÂçʸÀá¤ÎÀèÆ¬¤Ë¤Ê¤ì¤ë¤â¤Î)
	    WNN_ALL_HINSI	(Á´¤Æ¤Î¾®Ê¸Àá)

¤ò»ØÄꤹ¤ë¡£

vec¡¢vec1 ¤Ï¡¢ÊÑ´¹¤Î¤¿¤á¤Î½ªÃ¼¥Ù¥¯¥È¥ë¤ò»ØÄꤹ¤ë¡£ ¸å¤í¤Î¾®Ê¸Àá¤ÎÁ°Ã¼¥Ù¥¯¥È¥ë¤ò»ØÄꤹ¤ë¡£¤½¤Î¾ì¹ç¤Ï¡¢yomi ¤ÎºÇ¸å¤ÎʸÀá¤Ë ¸å¤í¤ÎʸÀá¤ò´Þ¤á¤¿¤â¤Î¤¬ÂçʸÀá¤È¤Ê¤ë¡£ ¸å¤í¤Î¾®Ê¸Àá¤È¤ÏÊÌÂçʸÀá¤È¤·¤ÆÊÑ´¹¤¹¤ë»þ¤Ï¡¢vec¡¢ vec1 ¤Ë¡¢

	    WNN_VECT_KANREN (ϢʸÀáÊÑ´¹¤Î½ªÃ¼¥Ù¥¯¥È¥ë)
	    WNN_VECT_KANTAN (ñʸÀáÊÑ´¹¤Î½ªÃ¼¥Ù¥¯¥È¥ë)
	    WNN_VECT_KANZEN (Á´¸õÊä¼è½Ð¤·¤Î½ªÃ¼¥Ù¥¯¥È¥ë)
	    WNN_VECT_BUNSETSU (ʸÀá¤Î½ªÃ¼¥Ù¥¯¥È¥ë)

¤ò»ØÄꤹ¤ë¡£

vec ¤Ë»ØÄꤷ¤¿½ªÃ¼¥Ù¥¯¥È¥ë¤Ï¡¢vec1 ¤Ë»ØÄꤷ¤¿½ªÃ¼¥Ù¥¯¥È¥ë¤è¤ê¤â¡¢É¾²Á ´ð½à¤¬¹â¤¯¤Ê¤ë¡£ Ä̾vec ¤Ë¤Ï¸å¤í¤Î¾®Ê¸Àá¤ÎÁ°Ã¼¥Ù¥¯¥È¥ë¤ò¡¢vec1 ¤Ë¤Ï¡¢WNN_VECT_KANREN ¤ò»ØÄꤹ¤ë¡£ vec1 ¤Ë»ØÄꤹ¤Ù¤­½ªÃ¼¥Ù¥¯¥È¥ë¤¬¤Ê¤¤¾ì¹ç¤Ï¡¢WNN_VECT_NO ¤ò»ØÄꤹ¤ë¡£ ¤³¤Î¾ì¹ç vec ¤Î¤ß¤¬ÊÑ´¹¤Ë»ÈÍѤµ¤ì¤ë¡£

vec2 ¤Ï¡¢Ï¢Ê¸ÀáÊÑ´¹»þ¤ÎÅÓÃæ¤ÎʸÀá¤Ç»ÈÍѤµ¤ì¤ë¡£ Ä̾vec2 ¤Ë¤Ï WNN_VECT_BUNSETSU ¤ò»ØÄꤹ¤ë¡£

vec ¤ËÀܳ¤Ç¤­¤ëʸÀᤫ¡¢vec1 ¤ËÀܳ¤Ç¤­¤ëʸÀᤫ¤Ï¡¢ rb->buf->sbn->status_bkwd ¤ËÊÖ¤µ¤ì¤ë¡£ vec ¤ËÀܳ¤Ç¤­¤¿¾ì¹ç¤Ï¡¢WNN_CONNECT_BK ¤¬¡¢vec1 ¤ËÀܳ¤Ç¤­¤¿¾ì¹ç¤Ï¡¢ WNN_NOT_CONNECT_BK ¤¬ÊÖ¤µ¤ì¤ë¡£ ¤³¤ÎÃͤϡ¢yomi ¤Ë»ØÄꤷ¤¿¡¢ºÇ¸å¸ì¤ÎʸÀá¤Î¤ß¤¬Í­¸ú¤Ç¤¢¤ë¡£

rb ¤Ë¤Ï¡¢ÊÑ´¹·ë²Ì¤¬Ê֤륨¥ê¥¢¤Ø¤Î¥Ý¥¤¥ó¥¿(struct wnn_ret_buf *)¤ò»ØÄê ¤¹¤ë¡£rb ¤Ï¡¢¥æ¡¼¥¶¤¬ÍѰդ· *rb = {0, NULL} ¤Ë½é´ü²½¤¹¤ë¡£ rb->buf ¤ËÊÑ´¹·ë²Ì¤ÎÂçʸÀá¤Î¾ðÊó(struct wnn_dai_bunsetsu *)¤ÎÀèÆ¬¤Ø¤Î ¥Ý¥¤¥ó¥¿¤¬ÊÖ¤µ¤ì¤ë¡£¤½¤³¤«¤é¡¢ÂçʸÀá¿ô¤À¤±ÂçʸÀá¤Î¾ðÊ󤬡¢Æþ¤Ã¤Æ¤¤¤ë¡£

ÉÕ°¸ì¥Õ¥¡¥¤¥ë¤¬ÆÉ¤ß¹þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢¥¨¥é¡¼¤È¤Ê¤ë¡£

¥ê¥¿¡¼¥ó¥Ð¥ê¥å¡¼

Àµ¾ï½ªÎ»»þ¤Ë¤Ï¡¢ÂçʸÀá¿ô¤òÊÖ¤¹¡£
°Û¾ï½ªÎ»»þ¤Ë¤Ï¡¢-1 ¤òÊÖ¤¹¡£