static void init(void) { if(!initialized) {initialized=1; rnl_init(); rnl_verror_handler=&verror_handler_rnl; rnv_init(); rnv_verror_handler=&verror_handler_rnv; rnx_init(); drv_add_dtl(DXL_URL,&dxl_equal,&dxl_allows); drv_add_dtl(DSL_URL,&dsl_equal,&dsl_allows); text=(char*)m_alloc(len_txt=LEN_T,sizeof(char)); windup(); } }
static void init(void) { if(!initialized) {initialized=1; rnl_init(); rnv_init(); rnv_verror_handler=&silent_verror_handler; string=(char*)m_alloc(len_v=LEN_S*S_AVG_SIZE,sizeof(char)); t2s=(int(*)[2])m_alloc(len_2=LEN_2,sizeof(int[2])); rules=(int(*)[3])m_alloc(len_r=LEN_R,sizeof(int[3])); ht_init(&ht_s,LEN_S,&hash_s,&equal_s); value=(char*)m_alloc(len_v=LEN_V,sizeof(char)); text=(char*)m_alloc(len_txt=LEN_T,sizeof(char)); windup(); } }
void rx_init(void) { if(!initialized) { initialized=1; pattern=(int *)m_alloc(len_p=P_AVG_SIZE*LEN_P,sizeof(int)); r2p=(int (*)[2])m_alloc(len_2=LEN_2,sizeof(int[2])); regex=(char*)m_alloc(len_r=R_AVG_SIZE*LEN_R,sizeof(char)); memo=(int (*)[M_SIZE])m_alloc(len_m=LEN_M,sizeof(int[M_SIZE])); ht_init(&ht_p,LEN_P,&hash_p,&equal_p); ht_init(&ht_2,LEN_2,&hash_2,&equal_2); ht_init(&ht_r,LEN_R,&hash_r,&equal_r); ht_init(&ht_m,LEN_M,&hash_m,&equal_m); windup(); } }
static void clear(void) { if(len_txt>LIM_T) {m_free(text); text=(char*)m_alloc(len_txt=LEN_T,sizeof(char));} ht_clear(&ht_s); windup(); }
void rx_clear(void) { ht_clear(&ht_p); ht_clear(&ht_2); ht_clear(&ht_r); ht_clear(&ht_m); windup(); }
void sc_clear(struct sc_stack *stp) { windup(stp); }
void sc_init(struct sc_stack *stp) { stp->tab=(int(*)[SC_RECSIZE])m_alloc(stp->len=LEN,sizeof(int[SC_RECSIZE])); windup(stp); }
void rnv_clear(void) { windup(); }
void rnv_init(void) { if(!initialized) {initialized=1; drv_init(); drv_verror_handler=&verror_handler_drv; windup(); } }
void xsd_clear(void) { windup(); }
void xsd_init(void) { if(!initialized) { initialized=1; rx_init(); rx_verror_handler=&verror_handler_rx; windup(); } }