anchor.diff:    }
   
     action end_feature {
  +    int line;
       if (cs < lexer_first_final) {
         if (raise_lexer_error != NULL) {
           size_t count = 0;
  
positive.code:   }
  
    action store_cell_content {
      VALUE con = ENCODED_STR_NEW(PTR_TO(content_start), LEN(content_start, p));
      rb_funcall(con, rb_intern("strip!"), 0);
      VALUE re_pipe      = rb_reg_regcomp(rb_str_new2("\\\\\\|"));
      VALUE re_newline   = rb_reg_regcomp(rb_str_new2("\\\\n"));
      VALUE re_backslash = rb_reg_regcomp(rb_str_new2("\\\\\\\\"));
      rb_funcall(con, rb_intern("gsub!"), 2, re_pipe,      rb_str_new2("|"));
      rb_funcall(con, rb_intern("gsub!"), 2, re_newline,   rb_str_new2("\n"));
      rb_funcall(con, rb_intern("gsub!"), 2, re_backslash, rb_str_new2("\\"));
  
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);
    
  