C/Migemo 1.4
rxgen.c ファイル
#include "common.h"
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "rxgen.h"
#include "strbuf.h"
#include "trie.h"
rxgen.c の依存先関係図:

データ構造

struct  rnode
struct  rnode_block
struct  rnode_arena
struct  rxgen

マクロ定義

#define STRDUP   strdup
#define RXGEN_OP_MAXLEN   8
#define RXGEN_OP_OR   "|"
#define RXGEN_OP_NEST_IN   "("
#define RXGEN_OP_NEST_OUT   ")"
#define RXGEN_OP_SELECT_IN   "["
#define RXGEN_OP_SELECT_OUT   "]"
#define RXGEN_OP_NEWLINE   ""
#define RXGEN_DEBUG_STAT   0
#define RNODE_BLOCK_BYTES   (64 * 1024)
#define RNODE_BLOCK_HEADER_SIZE   (sizeof(void *) + sizeof(size_t))
#define RNODE_BLOCK_SIZE    ((RNODE_BLOCK_BYTES - RNODE_BLOCK_HEADER_SIZE) / sizeof(rnode))

型定義

typedef struct rnode rnode
typedef struct rnode_block rnode_block
typedef struct rnode_arena rnode_arena

関数

void rxgen_setproc_char2int (rxgen *rx, CHARSET_PROC_CHAR2INT proc)
void rxgen_setproc_int2char (rxgen *rx, CHARSET_PROC_INT2CHAR proc)
void rxgen_set_escape_chars (rxgen *rx, const unsigned char *chars)
rxgenrxgen_open ()
void rxgen_close (rxgen *rx)
int rxgen_add (rxgen *rx, const unsigned char *word)
unsigned char * rxgen_generate (rxgen *rx)
void rxgen_release (rxgen *rx, unsigned char *s)
void rxgen_reset (rxgen *rx)
const unsigned char * rxgen_get_operator (rxgen *rx, int index)
int rxgen_set_operator (rxgen *rx, int index, const unsigned char *op)

マクロ定義詳解

◆ RNODE_BLOCK_BYTES

#define RNODE_BLOCK_BYTES   (64 * 1024)

◆ RNODE_BLOCK_HEADER_SIZE

#define RNODE_BLOCK_HEADER_SIZE   (sizeof(void *) + sizeof(size_t))

◆ RNODE_BLOCK_SIZE

#define RNODE_BLOCK_SIZE    ((RNODE_BLOCK_BYTES - RNODE_BLOCK_HEADER_SIZE) / sizeof(rnode))

◆ RXGEN_DEBUG_STAT

#define RXGEN_DEBUG_STAT   0

◆ RXGEN_OP_MAXLEN

#define RXGEN_OP_MAXLEN   8

◆ RXGEN_OP_NEST_IN

#define RXGEN_OP_NEST_IN   "("

参照元 rxgen_open().

◆ RXGEN_OP_NEST_OUT

#define RXGEN_OP_NEST_OUT   ")"

参照元 rxgen_open().

◆ RXGEN_OP_NEWLINE

#define RXGEN_OP_NEWLINE   ""

参照元 rxgen_open().

◆ RXGEN_OP_OR

#define RXGEN_OP_OR   "|"

参照元 rxgen_open().

◆ RXGEN_OP_SELECT_IN

#define RXGEN_OP_SELECT_IN   "["

参照元 rxgen_open().

◆ RXGEN_OP_SELECT_OUT

#define RXGEN_OP_SELECT_OUT   "]"

参照元 rxgen_open().

◆ STRDUP

#define STRDUP   strdup

参照元 rxgen_generate().

型定義詳解

◆ rnode

typedef struct rnode rnode

◆ rnode_arena

typedef struct rnode_arena rnode_arena

◆ rnode_block

typedef struct rnode_block rnode_block

関数詳解

◆ rxgen_add()

int rxgen_add ( rxgen * rx,
const unsigned char * word )

◆ rxgen_close()

void rxgen_close ( rxgen * rx)

参照先 rxgen::arena.

参照元 migemo_close().

◆ rxgen_generate()

unsigned char * rxgen_generate ( rxgen * rx)

◆ rxgen_get_operator()

const unsigned char * rxgen_get_operator ( rxgen * rx,
int index )

◆ rxgen_open()

◆ rxgen_release()

void rxgen_release ( rxgen * rx,
unsigned char * s )

参照元 migemo_query().

◆ rxgen_reset()

void rxgen_reset ( rxgen * rx)

参照先 rxgen::arena, rxgen::root.

参照元 migemo_query().

◆ rxgen_set_escape_chars()

void rxgen_set_escape_chars ( rxgen * rx,
const unsigned char * chars )

◆ rxgen_set_operator()

int rxgen_set_operator ( rxgen * rx,
int index,
const unsigned char * op )

参照先 RXGEN_OP_MAXLEN.

参照元 migemo_set_operator().

◆ rxgen_setproc_char2int()

void rxgen_setproc_char2int ( rxgen * rx,
CHARSET_PROC_CHAR2INT proc )

◆ rxgen_setproc_int2char()