anchor.diff:        return (rules
            rule rl_extract if ((parse_state_ff.first == state) && (rg_buffered[0] >= len));
               let data = rg_tmp[0];
  +            dbprint(4, $format("extract %h", fshow(data_ff.first)));
               if (isValid(data_ff.first)) begin
                  data_ff.deq;
                  data = zeroExtend(data_this_cycle) << rg_buffered[0] | rg_tmp[0];
               end
  -            report_parse_action(parse_state_ff.first, rg_buffered[0], data_this_cycle, data);
  +            dbprint(4, $format("Parser State %h buffered %d, %h, %h", parse_state_ff.first, rg_buffered[0], data_this_cycle, data));
               extract_header(state, data);
               rg_tmp[0] <= zeroExtend(data >> len);
               succeed_and_next(len);
  
positive.code:    Array#(Reg#(Bit#(10))) rg_buffered <- mkCReg(3, 0);
     Array#(Reg#(Bit#(512))) rg_tmp <- mkCReg(2, 0);
  
     `define PARSER_STATE
     `include "ParserGenerated.bsv"
     `undef PARSER_STATE
  
negative.code:       let len = fromInteger(i);
        return (rules 
           rule rl_load if ((parse_state_ff.first == state) && rg_buffered[0] < len);
              dbprint(4, $format("extract ", fshow(data_ff.first)));
              if (isValid(data_ff.first)) begin
                 data_ff.deq;
                 let data = zeroExtend(data_in_tmp[0].data) << rg_buffered[0] | rg_tmp[0];
                 rg_tmp[0] <= zeroExtend(data);
                 move_shift_amt(128);
                 dbprint(4, $format("Parser State %h buffered %d, %h, %h", parse_state_ff.first, rg_buffered[0], data_in_tmp[0].data, data));
              end
           endrule
        endrules);
  