anchor.diff:  
   static VALUE CLexer_scan(VALUE self, VALUE input)
   {
  +  VALUE input_copy;
  +  char *data;
  +  size_t len;
     VALUE listener = rb_iv_get(self, "@listener");
   
  -  lexer_state *lexer = NULL;
  +  lexer_state *lexer;
  +  lexer = NULL;
     DATA_GET(self, lexer_state, lexer);
   
  -  VALUE input_copy = rb_str_dup(input);
  +  input_copy = rb_str_dup(input);
   
     rb_str_append(input_copy, rb_str_new2("\n%_FEATURE_END_%"));
  -  char *data = RSTRING_PTR(input_copy);
  -  size_t len = RSTRING_LEN(input_copy);
  +  data = RSTRING_PTR(input_copy);
  +  len = RSTRING_LEN(input_copy);
     
     if (len == 0) { 
       rb_raise(rb_eGherkinLexingError, "No content to lex.");
  
positive.code:           newstr_count++;
          }
  
          int line = lexer->line_number;
          lexer_init(lexer); // Re-initialize so we can scan again with the same lexer
          raise_lexer_error(newstr, line);
        }
  
negative.code: 
  static VALUE CLexer_init(VALUE self, VALUE listener)
  {
    lexer_state *lxr; 
    rb_iv_set(self, "@listener", listener);
    
    lxr = NULL;
    DATA_GET(self, lexer_state, lxr);
    lexer_init(lxr);
    
  