The Filter Parser (Cont.) filter_node_t* filter_parser::expr_bitwise_and(bool get) { filter_node_t* left = equality(get); filter_node_t* right = NULL; for (;;) { switch(curr_tok.t) { case (BITWISE_AND): right = equality(true); left = make_bit_and(left, right); if (!left) { strstream err; err << "syntax error at expression ending in " << curr_tok.orig_text << ends; throw parse_exception(_p.get_file_name(), get_line_num(), err.str()); } break; default: return left; } } }