anchor.diff:  #define MARK(M, P) (lexer->M = (P) - data)
   #define PTR_TO(P) (data + lexer->P)
   
  +#define STORE_KW_CON(EVENT) \
  +    VALUE con = Qnil, kw = Qnil; \
  +    kw = rb_str_new(PTR_TO(keyword_start), LEN(keyword_start, PTR_TO(keyword_end - 1))); \
  +    con = rb_str_new(PTR_TO(content_start), LEN(content_start, PTR_TO(content_end))); \
  +    con = multiline_strip(con); \
  +    rb_funcall(con, rb_intern("strip!"), 0); \
  +    rb_funcall(kw, rb_intern("strip!"), 0); \
  +    rb_funcall(listener, rb_intern(#EVENT), 3, kw, con, INT2FIX(lexer->current_line)); \
  +    if (lexer->content_end != 0) { \
  +      p = PTR_TO(content_end - 1); \
  +    } \
  +    lexer->content_end = 0;
  + 
   typedef struct lexer_state {
     int content_len;
     int line_number;
  
positive.code:   }
    
    action store_background_content {
  		store_background_content(listener, PTR_TO(keyword_start), LEN(keyword_start, PTR_TO(keyword_end - 1)), PTR_TO(content_start), LEN(content_start, PTR_TO(content_end)), lexer->current_line);
  
      if (lexer->content_end != 0) {
        p = PTR_TO(content_end - 1);
      }
      lexer->content_end = 0;
    }
    
    action store_scenario_content {
  
negative.code:   rb_funcall(listener, rb_intern("scenario_outline"), 3, kw, con, INT2FIX(current_line)); 
  }
  
  static void store_examples_content(VALUE listener, const char *keyword_at, size_t keyword_length, const char *at, size_t length, int current_line)
  {
    VALUE con = Qnil, kw = Qnil;
  