1/********************************************************************** 2 3 re.h - 4 5 $Author: nobu $ 6 created at: Thu Sep 30 14:18:32 JST 1993 7 8 Copyright (C) 1993-2007 Yukihiro Matsumoto 9 10**********************************************************************/ 11 12#ifndef RUBY_RE_H 13#define RUBY_RE_H 1 14 15#if defined(__cplusplus) 16extern "C" { 17#if 0 18} /* satisfy cc-mode */ 19#endif 20#endif 21 22#include <sys/types.h> 23#include <stdio.h> 24 25#include "ruby/regex.h" 26 27#if defined __GNUC__ && __GNUC__ >= 4 28#pragma GCC visibility push(default) 29#endif 30 31typedef struct re_pattern_buffer Regexp; 32 33struct rmatch_offset { 34 long beg; 35 long end; 36}; 37 38struct rmatch { 39 struct re_registers regs; 40 41 int char_offset_updated; 42 int char_offset_num_allocated; 43 struct rmatch_offset *char_offset; 44}; 45 46struct RMatch { 47 struct RBasic basic; 48 VALUE str; 49 struct rmatch *rmatch; 50 VALUE regexp; /* RRegexp */ 51}; 52 53#define RMATCH(obj) (R_CAST(RMatch)(obj)) 54#define RMATCH_REGS(obj) (&(R_CAST(RMatch)(obj))->rmatch->regs) 55 56VALUE rb_reg_regcomp(VALUE); 57long rb_reg_search(VALUE, VALUE, long, int); 58VALUE rb_reg_regsub(VALUE, VALUE, struct re_registers *, VALUE); 59long rb_reg_adjust_startpos(VALUE, VALUE, long, int); 60void rb_match_busy(VALUE); 61VALUE rb_reg_quote(VALUE); 62regex_t *rb_reg_prepare_re(VALUE re, VALUE str); 63 64#if defined __GNUC__ && __GNUC__ >= 4 65#pragma GCC visibility pop 66#endif 67 68#if defined(__cplusplus) 69#if 0 70{ /* satisfy cc-mode */ 71#endif 72} /* extern "C" { */ 73#endif 74 75#endif /* RUBY_RE_H */ 76