示例#1
0
文件: dfa.hpp 项目: MGKhKhD/easy-IP
 forceinline
 DFA::Symbols::Symbols(const DFA& d) {
   const DFAI* o = static_cast<DFAI*>(d.object());
   if (o != NULL) {
     c_trans = &o->trans[0];
     e_trans = c_trans+o->n_trans;
   } else {
     c_trans = e_trans = NULL;
   }
 }
示例#2
0
文件: dfa.hpp 项目: MGKhKhD/easy-IP
 forceinline
 DFA::Transitions::Transitions(const DFA& d, int n) {
   const DFAI* o = static_cast<DFAI*>(d.object());
   if (o != NULL) {
     int mask = (1<<o->n_log)-1;
     int p = n & mask;
     while ((o->table[p].fst != NULL) && (o->table[p].symbol != n))
       p = (p+1) & mask;
     c_trans = o->table[p].fst;
     e_trans = o->table[p].lst;
   } else {
     c_trans = e_trans = NULL;
   }
 }