21 void SearchFIFO::init(
Node *root_,
PRD_Sequence_Pos min_distance_to_next_match_,
bool expand_IUPAC_Codes_) {
27 expand_IUPAC_Codes = expand_IUPAC_Codes_;
28 min_distance_to_next_match = min_distance_to_next_match_;
32 init(root_, min_distance_to_next_match_, expand_IUPAC_Codes_);
36 init(
NULp, -1,
false);
57 current = current->
next;
79 child_of_root = root->
child[2];
83 new_parameter->
node = child_of_root;
87 if (end) end->
next = new_parameter;
88 if (!begin) begin = new_parameter;
94 child_of_root = root->
child[3];
98 new_parameter->
node = child_of_root;
102 if (end) end->
next = new_parameter;
103 if (!begin) begin = new_parameter;
109 child_of_root = root->
child[0];
113 new_parameter->
node = child_of_root;
117 if (end) end->
next = new_parameter;
118 if (!begin) begin = new_parameter;
124 child_of_root = root->
child[1];
128 new_parameter->
node = child_of_root;
132 if (end) end->
next = new_parameter;
133 if (!begin) begin = new_parameter;
144 void SearchFIFO::push_front(
Node *child_of_current_) {
147 new_parameter->
node = child_of_current_;
148 new_parameter->
next = begin;
151 if (!end) end = new_parameter;
152 if (begin) begin->
previous = new_parameter;
153 begin = new_parameter;
161 if (!expand_IUPAC_Codes) {
173 current->
node = child;
177 if (min_distance_to_next_match <= 0) {
201 current = current ? current->
next : begin;
213 if (min_distance_to_next_match <= 0) {
242 if (min_distance_to_next_match <= 0) {
271 if (min_distance_to_next_match <= 0) {
300 if (min_distance_to_next_match <= 0) {
328 current = current ? current->
next : begin;
343 if (param_ == current) current = param_->
previous;
357 printf(
"print : begin (nil)\n");
362 printf(
"end (nil)\n");
365 printf(
"print : %p (%p[%c],%p,%p)\n", current, current->
node, current->
node->
base, current->
previous, current->
next);
366 current = current->
next;
void push(unsigned char base_)
static ChildLookupTable CHAR2CHILD
Node * childByBase(unsigned char base_)
PRD_Sequence_Pos last_base_index
SearchParameter * previous
void iterateWith(PRD_Sequence_Pos pos_, unsigned char base_)
long int PRD_Sequence_Pos