Ruby  2.0.0p648(2015-12-16revision53162)
Data Structures | Macros | Typedefs | Functions | Variables
re.c File Reference
#include "ruby/ruby.h"
#include "ruby/re.h"
#include "ruby/encoding.h"
#include "ruby/util.h"
#include "internal.h"
#include "regint.h"
#include <ctype.h>

Go to the source code of this file.

Data Structures

struct  pair_t
 
struct  backref_name_tag
 

Macros

#define errcpy(err, msg)   strlcpy((err), (msg), ONIG_MAX_ERROR_MESSAGE_LEN)
 
#define BEG(no)   (regs->beg[(no)])
 
#define END(no)   (regs->end[(no)])
 
#define REG_LITERAL   FL_USER5
 
#define REG_ENCODING_NONE   FL_USER6
 
#define KCODE_FIXED   FL_USER4
 
#define ARG_REG_OPTION_MASK   (ONIG_OPTION_IGNORECASE|ONIG_OPTION_MULTILINE|ONIG_OPTION_EXTEND)
 
#define ARG_ENCODING_FIXED   16
 
#define ARG_ENCODING_NONE   32
 
#define MATCH_BUSY   FL_USER2
 
#define ASCGET(s, e, cl)   (acompat ? (*(cl)=1,ISASCII((s)[0])?(s)[0]:-1) : rb_enc_ascget((s), (e), (cl), str_enc))
 

Typedefs

typedef char onig_errmsg_buffer [ONIG_MAX_ERROR_MESSAGE_LEN]
 

Functions

int rb_memcicmp (const void *x, const void *y, long len)
 
int rb_memcmp (const void *p1, const void *p2, long len)
 
static long rb_memsearch_ss (const unsigned char *xs, long m, const unsigned char *ys, long n)
 
static long rb_memsearch_qs (const unsigned char *xs, long m, const unsigned char *ys, long n)
 
static unsigned int rb_memsearch_qs_utf8_hash (const unsigned char *x)
 
static long rb_memsearch_qs_utf8 (const unsigned char *xs, long m, const unsigned char *ys, long n)
 
long rb_memsearch (const void *x0, long m, const void *y0, long n, rb_encoding *enc)
 
static int char_to_option (int c)
 
static char * option_to_str (char str[4], int options)
 
int rb_char_to_option_kcode (int c, int *option, int *kcode)
 
static void rb_reg_check (VALUE re)
 
static void rb_reg_expr_str (VALUE str, const char *s, long len, rb_encoding *enc, rb_encoding *resenc)
 
static VALUE rb_reg_desc (const char *s, long len, VALUE re)
 
static VALUE rb_reg_source (VALUE re)
 
static VALUE rb_reg_inspect (VALUE re)
 
static VALUE rb_reg_to_s (VALUE re)
 
static void rb_reg_raise (const char *s, long len, const char *err, VALUE re)
 
static VALUE rb_enc_reg_error_desc (const char *s, long len, rb_encoding *enc, int options, const char *err)
 
static void rb_enc_reg_raise (const char *s, long len, rb_encoding *enc, int options, const char *err)
 
static VALUE rb_reg_error_desc (VALUE str, int options, const char *err)
 
static void rb_reg_raise_str (VALUE str, int options, const char *err)
 
static VALUE rb_reg_casefold_p (VALUE re)
 
static VALUE rb_reg_options_m (VALUE re)
 
static int reg_names_iter (const OnigUChar *name, const OnigUChar *name_end, int back_num, int *back_refs, OnigRegex regex, void *arg)
 
static VALUE rb_reg_names (VALUE re)
 
static int reg_named_captures_iter (const OnigUChar *name, const OnigUChar *name_end, int back_num, int *back_refs, OnigRegex regex, void *arg)
 
static VALUE rb_reg_named_captures (VALUE re)
 
static int onig_new_with_source (regex_t **reg, const UChar *pattern, const UChar *pattern_end, OnigOptionType option, OnigEncoding enc, const OnigSyntaxType *syntax, OnigErrorInfo *einfo, const char *sourcefile, int sourceline)
 
static Regexpmake_regexp (const char *s, long len, rb_encoding *enc, int flags, onig_errmsg_buffer err, const char *sourcefile, int sourceline)
 
static VALUE match_alloc (VALUE klass)
 
static int pair_byte_cmp (const void *pair1, const void *pair2)
 
static void update_char_offset (VALUE match)
 
static void match_check (VALUE match)
 
static VALUE match_init_copy (VALUE obj, VALUE orig)
 
static VALUE match_regexp (VALUE match)
 
static VALUE match_names (VALUE match)
 
static VALUE match_size (VALUE match)
 
static int match_backref_number (VALUE match, VALUE backref)
 
int rb_reg_backref_number (VALUE match, VALUE backref)
 
static VALUE match_offset (VALUE match, VALUE n)
 
static VALUE match_begin (VALUE match, VALUE n)
 
static VALUE match_end (VALUE match, VALUE n)
 
void rb_match_busy (VALUE match)
 
static VALUE rb_reg_fixed_encoding_p (VALUE re)
 
static VALUE rb_reg_preprocess (const char *p, const char *end, rb_encoding *enc, rb_encoding **fixed_enc, onig_errmsg_buffer err)
 
static void reg_enc_error (VALUE re, VALUE str)
 
static rb_encodingrb_reg_prepare_enc (VALUE re, VALUE str, int warn)
 
regex_trb_reg_prepare_re (VALUE re, VALUE str)
 
long rb_reg_adjust_startpos (VALUE re, VALUE str, long pos, int reverse)
 
long rb_reg_search (VALUE re, VALUE str, long pos, int reverse)
 
VALUE rb_reg_nth_defined (int nth, VALUE match)
 
VALUE rb_reg_nth_match (int nth, VALUE match)
 
VALUE rb_reg_last_match (VALUE match)
 
VALUE rb_reg_match_pre (VALUE match)
 
VALUE rb_reg_match_post (VALUE match)
 
VALUE rb_reg_match_last (VALUE match)
 
static VALUE last_match_getter (void)
 
static VALUE prematch_getter (void)
 
static VALUE postmatch_getter (void)
 
static VALUE last_paren_match_getter (void)
 
static VALUE match_array (VALUE match, int start)
 
static VALUE match_to_a (VALUE match)
 
static VALUE match_captures (VALUE match)
 
static int name_to_backref_number (struct re_registers *regs, VALUE regexp, const char *name, const char *name_end)
 
 NORETURN (static void name_to_backref_error(VALUE name))
 
static void name_to_backref_error (VALUE name)
 
static VALUE match_aref (int argc, VALUE *argv, VALUE match)
 
static VALUE match_entry (VALUE match, long n)
 
static VALUE match_values_at (int argc, VALUE *argv, VALUE match)
 
static VALUE match_to_s (VALUE match)
 
static VALUE match_string (VALUE match)
 
static int match_inspect_name_iter (const OnigUChar *name, const OnigUChar *name_end, int back_num, int *back_refs, OnigRegex regex, void *arg0)
 
static VALUE match_inspect (VALUE match)
 
static int read_escaped_byte (const char **pp, const char *end, onig_errmsg_buffer err)
 
static int unescape_escaped_nonascii (const char **pp, const char *end, rb_encoding *enc, VALUE buf, rb_encoding **encp, onig_errmsg_buffer err)
 
static int check_unicode_range (unsigned long code, onig_errmsg_buffer err)
 
static int append_utf8 (unsigned long uv, VALUE buf, rb_encoding **encp, onig_errmsg_buffer err)
 
static int unescape_unicode_list (const char **pp, const char *end, VALUE buf, rb_encoding **encp, onig_errmsg_buffer err)
 
static int unescape_unicode_bmp (const char **pp, const char *end, VALUE buf, rb_encoding **encp, onig_errmsg_buffer err)
 
static int unescape_nonascii (const char *p, const char *end, rb_encoding *enc, VALUE buf, rb_encoding **encp, int *has_property, onig_errmsg_buffer err)
 
VALUE rb_reg_check_preprocess (VALUE str)
 
static VALUE rb_reg_preprocess_dregexp (VALUE ary, int options)
 
static int rb_reg_initialize (VALUE obj, const char *s, long len, rb_encoding *enc, int options, onig_errmsg_buffer err, const char *sourcefile, int sourceline)
 
static int rb_reg_initialize_str (VALUE obj, VALUE str, int options, onig_errmsg_buffer err, const char *sourcefile, int sourceline)
 
static VALUE rb_reg_s_alloc (VALUE klass)
 
VALUE rb_reg_alloc (void)
 
VALUE rb_reg_new_str (VALUE s, int options)
 
VALUE rb_reg_init_str (VALUE re, VALUE s, int options)
 
VALUE rb_reg_new_ary (VALUE ary, int opt)
 
VALUE rb_enc_reg_new (const char *s, long len, rb_encoding *enc, int options)
 
VALUE rb_reg_new (const char *s, long len, int options)
 
VALUE rb_reg_compile (VALUE str, int options, const char *sourcefile, int sourceline)
 
VALUE rb_reg_regcomp (VALUE str)
 
static st_index_t reg_hash (VALUE re)
 
static VALUE rb_reg_hash (VALUE re)
 
static VALUE rb_reg_equal (VALUE re1, VALUE re2)
 
static VALUE match_hash (VALUE match)
 
static VALUE match_equal (VALUE match1, VALUE match2)
 
static VALUE reg_operand (VALUE s, int check)
 
static long reg_match_pos (VALUE re, VALUE *strp, long pos)
 
VALUE rb_reg_match (VALUE re, VALUE str)
 
VALUE rb_reg_eqq (VALUE re, VALUE str)
 
VALUE rb_reg_match2 (VALUE re)
 
static VALUE rb_reg_match_m (int argc, VALUE *argv, VALUE re)
 
static VALUE rb_reg_initialize_m (int argc, VALUE *argv, VALUE self)
 
VALUE rb_reg_quote (VALUE str)
 
static VALUE rb_reg_s_quote (VALUE c, VALUE str)
 
int rb_reg_options (VALUE re)
 
VALUE rb_check_regexp_type (VALUE re)
 
static VALUE rb_reg_s_try_convert (VALUE dummy, VALUE re)
 
static VALUE rb_reg_s_union (VALUE self, VALUE args0)
 
static VALUE rb_reg_s_union_m (VALUE self, VALUE args)
 
static VALUE rb_reg_init_copy (VALUE copy, VALUE re)
 
VALUE rb_reg_regsub (VALUE str, VALUE src, struct re_registers *regs, VALUE regexp)
 
static VALUE kcode_getter (void)
 
static void kcode_setter (VALUE val, ID id)
 
static VALUE ignorecase_getter (void)
 
static void ignorecase_setter (VALUE val, ID id)
 
static VALUE match_getter (void)
 
static void match_setter (VALUE val)
 
static VALUE rb_reg_s_last_match (int argc, VALUE *argv)
 
static void re_warn (const char *s)
 
void Init_Regexp (void)
 

Variables

VALUE rb_eRegexpError
 
VALUE rb_cMatch
 
VALUE rb_cRegexp
 
static VALUE reg_cache
 

Macro Definition Documentation

#define ARG_ENCODING_FIXED   16

Definition at line 264 of file re.c.

Referenced by Init_Regexp(), rb_char_to_option_kcode(), rb_reg_initialize(), and rb_reg_options().

#define ARG_ENCODING_NONE   32

Definition at line 262 of file re.c.

Referenced by rb_reg_initialize(), and rb_reg_options().

#define ASCGET (   s,
  e,
  cl 
)    (acompat ? (*(cl)=1,ISASCII((s)[0])?(s)[0]:-1) : rb_enc_ascget((s), (e), (cl), str_enc))

Referenced by rb_reg_regsub().

#define BEG (   no)    (regs->beg[(no)])
#define END (   no)    (regs->end[(no)])
#define errcpy (   err,
  msg 
)    strlcpy((err), (msg), ONIG_MAX_ERROR_MESSAGE_LEN)
#define KCODE_FIXED   FL_USER4

Definition at line 260 of file re.c.

Referenced by rb_reg_equal(), rb_reg_fixed_encoding_p(), rb_reg_initialize(), and rb_reg_options().

#define MATCH_BUSY   FL_USER2

Definition at line 1186 of file re.c.

Referenced by rb_match_busy(), and rb_reg_search().

#define REG_ENCODING_NONE   FL_USER6

Definition at line 258 of file re.c.

Referenced by rb_reg_desc(), rb_reg_initialize(), rb_reg_options(), and rb_reg_prepare_enc().

#define REG_LITERAL   FL_USER5

Definition at line 257 of file re.c.

Referenced by rb_reg_compile(), and rb_reg_initialize().

Typedef Documentation

typedef char onig_errmsg_buffer[ONIG_MAX_ERROR_MESSAGE_LEN]

Definition at line 22 of file re.c.

Function Documentation

static int append_utf8 ( unsigned long  uv,
VALUE  buf,
rb_encoding **  encp,
onig_errmsg_buffer  err 
)
static
static int char_to_option ( int  c)
static

Definition at line 268 of file re.c.

References ONIG_OPTION_EXTEND, ONIG_OPTION_IGNORECASE, ONIG_OPTION_MULTILINE, and val.

Referenced by rb_char_to_option_kcode(), and rb_reg_to_s().

static int check_unicode_range ( unsigned long  code,
onig_errmsg_buffer  err 
)
static

Definition at line 2065 of file re.c.

References errcpy.

Referenced by append_utf8().

static VALUE ignorecase_getter ( void  )
static

Definition at line 3418 of file re.c.

References Qfalse, and rb_warn().

Referenced by Init_Regexp().

static void ignorecase_setter ( VALUE  val,
ID  id 
)
static

Definition at line 3425 of file re.c.

References rb_warn().

Referenced by Init_Regexp().

void Init_Regexp ( void  )

Definition at line 3522 of file re.c.

References ARG_ENCODING_FIXED, ARG_ENCODING_NONE, CLASS_OF, ignorecase_getter(), ignorecase_setter(), INT2FIX, kcode_getter(), kcode_setter(), last_match_getter(), last_paren_match_getter(), match_alloc(), match_aref(), match_begin(), match_captures(), match_end(), match_equal(), match_getter(), match_hash(), match_init_copy(), match_inspect(), match_names(), match_offset(), match_regexp(), match_setter(), match_size(), match_string(), match_to_a(), match_to_s(), match_values_at(), ONIG_ENCODING_ASCII, ONIG_OPTION_EXTEND, ONIG_OPTION_IGNORECASE, ONIG_OPTION_MULTILINE, onig_set_verb_warn_func(), onig_set_warn_func(), onigenc_set_default_caseconv_table(), onigenc_set_default_encoding(), postmatch_getter(), prematch_getter(), rb_class_new_instance(), rb_cObject, rb_define_alloc_func(), rb_define_class(), rb_define_const(), rb_define_method(), rb_define_singleton_method(), rb_define_virtual_variable(), rb_eRegexpError, rb_eStandardError, rb_global_variable(), rb_obj_encoding(), rb_reg_casefold_p(), rb_reg_eqq(), rb_reg_equal(), rb_reg_fixed_encoding_p(), rb_reg_hash(), rb_reg_init_copy(), rb_reg_initialize_m(), rb_reg_inspect(), rb_reg_match(), rb_reg_match2(), rb_reg_match_m(), rb_reg_match_post(), rb_reg_match_pre(), rb_reg_named_captures(), rb_reg_names(), rb_reg_options_m(), rb_reg_s_alloc(), rb_reg_s_last_match(), rb_reg_s_quote(), rb_reg_s_try_convert(), rb_reg_s_union_m(), rb_reg_source(), rb_reg_to_s(), rb_undef_method(), re_warn(), and UChar.

static VALUE kcode_getter ( void  )
static

Definition at line 3405 of file re.c.

References Qnil, and rb_warn().

Referenced by Init_Regexp().

static void kcode_setter ( VALUE  val,
ID  id 
)
static

Definition at line 3412 of file re.c.

References rb_warn().

Referenced by Init_Regexp().

static VALUE last_match_getter ( void  )
static

Definition at line 1563 of file re.c.

References rb_backref_get(), and rb_reg_last_match().

Referenced by Init_Regexp().

static VALUE last_paren_match_getter ( void  )
static

Definition at line 1581 of file re.c.

References rb_backref_get(), and rb_reg_match_last().

Referenced by Init_Regexp().

static Regexp* make_regexp ( const char *  s,
long  len,
rb_encoding enc,
int  flags,
onig_errmsg_buffer  err,
const char *  sourcefile,
int  sourceline 
)
static

Definition at line 804 of file re.c.

References onig_error_code_to_str(), onig_new_with_source(), OnigDefaultSyntax, and UChar.

Referenced by rb_reg_initialize().

static VALUE match_alloc ( VALUE  klass)
static

Definition at line 843 of file re.c.

References ALLOC, match(), MEMZERO, NEWOBJ_OF, and T_MATCH.

Referenced by Init_Regexp(), and rb_reg_search().

static VALUE match_aref ( int  argc,
VALUE argv,
VALUE  match 
)
static
static VALUE match_array ( VALUE  match,
int  start 
)
static
static int match_backref_number ( VALUE  match,
VALUE  backref 
)
static
static VALUE match_begin ( VALUE  match,
VALUE  n 
)
static
static VALUE match_captures ( VALUE  match)
static

Definition at line 1660 of file re.c.

References match_array().

Referenced by Init_Regexp().

static void match_check ( VALUE  match)
static
static VALUE match_end ( VALUE  match,
VALUE  n 
)
static
static VALUE match_entry ( VALUE  match,
long  n 
)
static

Definition at line 1748 of file re.c.

References rb_reg_nth_match().

Referenced by match_values_at().

static VALUE match_equal ( VALUE  match1,
VALUE  match2 
)
static
static VALUE match_getter ( void  )
static

Definition at line 3431 of file re.c.

References match(), NIL_P, Qnil, rb_backref_get(), and rb_match_busy().

Referenced by Init_Regexp(), and rb_reg_s_last_match().

static VALUE match_hash ( VALUE  match)
static
static VALUE match_init_copy ( VALUE  obj,
VALUE  orig 
)
static
static VALUE match_inspect ( VALUE  match)
static
static int match_inspect_name_iter ( const OnigUChar name,
const OnigUChar name_end,
int  back_num,
int *  back_refs,
OnigRegex  regex,
void *  arg0 
)
static

Definition at line 1825 of file re.c.

References i, backref_name_tag::len, name, and backref_name_tag::name.

Referenced by match_inspect().

static VALUE match_names ( VALUE  match)
static

Definition at line 1014 of file re.c.

References match_check(), rb_reg_names(), and RMATCH.

Referenced by Init_Regexp().

static VALUE match_offset ( VALUE  match,
VALUE  n 
)
static
static VALUE match_regexp ( VALUE  match)
static

Definition at line 993 of file re.c.

References match_check(), and RMATCH.

Referenced by Init_Regexp().

static void match_setter ( VALUE  val)
static

Definition at line 3441 of file re.c.

References Check_Type, NIL_P, rb_backref_set(), and T_MATCH.

Referenced by Init_Regexp().

static VALUE match_size ( VALUE  match)
static

Definition at line 1033 of file re.c.

References INT2FIX, match_check(), and RMATCH_REGS.

Referenced by Init_Regexp().

static VALUE match_string ( VALUE  match)
static

Definition at line 1813 of file re.c.

References match_check(), and RMATCH.

Referenced by cParser_initialize(), Init_Regexp(), and JSON_parse_string().

static VALUE match_to_a ( VALUE  match)
static

Definition at line 1641 of file re.c.

References match_array().

Referenced by Init_Regexp(), and match_aref().

static VALUE match_to_s ( VALUE  match)
static

Definition at line 1790 of file re.c.

References match_check(), NIL_P, OBJ_TAINT, OBJ_TAINTED, rb_reg_last_match(), rb_str_new(), and RMATCH.

Referenced by Init_Regexp().

static VALUE match_values_at ( int  argc,
VALUE argv,
VALUE  match 
)
static

Definition at line 1769 of file re.c.

References match_check(), match_entry(), re_registers::num_regs, rb_get_values_at(), and RMATCH_REGS.

Referenced by Init_Regexp().

static void name_to_backref_error ( VALUE  name)
static

Definition at line 1674 of file re.c.

References PRIsVALUE, rb_eIndexError, and rb_raise().

Referenced by match_aref(), and rb_reg_regsub().

static int name_to_backref_number ( struct re_registers regs,
VALUE  regexp,
const char *  name,
const char *  name_end 
)
static

Definition at line 1666 of file re.c.

References onig_name_to_backref_number(), and RREGEXP.

Referenced by match_aref(), and rb_reg_regsub().

NORETURN ( static void   name_to_backref_errorVALUE name)
static int onig_new_with_source ( regex_t **  reg,
const UChar pattern,
const UChar pattern_end,
OnigOptionType  option,
OnigEncoding  enc,
const OnigSyntaxType syntax,
OnigErrorInfo einfo,
const char *  sourcefile,
int  sourceline 
)
static

Definition at line 782 of file re.c.

References err, IS_NULL, malloc, NULL, onig_compile(), onig_free(), onig_reg_init(), ONIGENC_CASE_FOLD_DEFAULT, and ONIGERR_MEMORY.

Referenced by make_regexp().

static char* option_to_str ( char  str[4],
int  options 
)
static
static int pair_byte_cmp ( const void *  pair1,
const void *  pair2 
)
static

Definition at line 862 of file re.c.

References diff().

Referenced by update_char_offset().

static VALUE postmatch_getter ( void  )
static

Definition at line 1575 of file re.c.

References rb_backref_get(), and rb_reg_match_post().

Referenced by Init_Regexp().

static VALUE prematch_getter ( void  )
static

Definition at line 1569 of file re.c.

References rb_backref_get(), and rb_reg_match_pre().

Referenced by Init_Regexp().

int rb_char_to_option_kcode ( int  c,
int *  option,
int *  kcode 
)
VALUE rb_check_regexp_type ( VALUE  re)

Definition at line 3090 of file re.c.

References rb_check_convert_type(), and T_REGEXP.

Referenced by rb_reg_s_try_convert(), and rb_reg_s_union().

static VALUE rb_enc_reg_error_desc ( const char *  s,
long  len,
rb_encoding enc,
int  options,
const char *  err 
)
static
VALUE rb_enc_reg_new ( const char *  s,
long  len,
rb_encoding enc,
int  options 
)

Definition at line 2506 of file re.c.

References err, NULL, rb_enc_reg_raise(), rb_reg_alloc(), and rb_reg_initialize().

Referenced by rb_reg_new().

static void rb_enc_reg_raise ( const char *  s,
long  len,
rb_encoding enc,
int  options,
const char *  err 
)
static

Definition at line 631 of file re.c.

References rb_enc_reg_error_desc(), and rb_exc_raise().

Referenced by rb_enc_reg_new().

void rb_match_busy ( VALUE  match)
int rb_memcicmp ( const void *  x,
const void *  y,
long  len 
)

Definition at line 80 of file re.c.

Referenced by parser_encode_length(), and rb_file_identical_p().

int rb_memcmp ( const void *  p1,
const void *  p2,
long  len 
)

Definition at line 95 of file re.c.

References memcmp().

long rb_memsearch ( const void *  x0,
long  m,
const void *  y0,
long  n,
rb_encoding enc 
)
static long rb_memsearch_qs ( const unsigned char *  xs,
long  m,
const unsigned char *  ys,
long  n 
)
inlinestatic

Definition at line 153 of file re.c.

References i, and memcmp().

Referenced by rb_memsearch().

static long rb_memsearch_qs_utf8 ( const unsigned char *  xs,
long  m,
const unsigned char *  ys,
long  n 
)
inlinestatic

Definition at line 205 of file re.c.

References i, memcmp(), and rb_memsearch_qs_utf8_hash().

Referenced by rb_memsearch().

static unsigned int rb_memsearch_qs_utf8_hash ( const unsigned char *  x)
inlinestatic

Definition at line 173 of file re.c.

Referenced by rb_memsearch_qs_utf8().

static long rb_memsearch_ss ( const unsigned char *  xs,
long  m,
const unsigned char *  ys,
long  n 
)
inlinestatic

Definition at line 113 of file re.c.

References CHAR_BIT, rb_bug(), and SIZEOF_VALUE.

Referenced by rb_memsearch().

long rb_reg_adjust_startpos ( VALUE  re,
VALUE  str,
long  pos,
int  reverse 
)
VALUE rb_reg_alloc ( void  )

Definition at line 2476 of file re.c.

References rb_reg_s_alloc().

Referenced by rb_enc_reg_new(), rb_reg_compile(), and rb_reg_new_str().

int rb_reg_backref_number ( VALUE  match,
VALUE  backref 
)

Definition at line 1075 of file re.c.

References match_backref_number().

Referenced by rb_str_subpat(), and rb_str_subpat_set().

static VALUE rb_reg_casefold_p ( VALUE  re)
static

Definition at line 662 of file re.c.

References ONIG_OPTION_IGNORECASE, Qfalse, Qtrue, rb_reg_check(), and RREGEXP.

Referenced by Init_Regexp().

static void rb_reg_check ( VALUE  re)
static
VALUE rb_reg_check_preprocess ( VALUE  str)
VALUE rb_reg_compile ( VALUE  str,
int  options,
const char *  sourcefile,
int  sourceline 
)
static VALUE rb_reg_desc ( const char *  s,
long  len,
VALUE  re 
)
static
VALUE rb_reg_eqq ( VALUE  re,
VALUE  str 
)

Definition at line 2771 of file re.c.

References FALSE, NIL_P, Qfalse, Qnil, Qtrue, rb_backref_set(), rb_reg_search(), and reg_operand().

Referenced by Init_Regexp().

static VALUE rb_reg_equal ( VALUE  re1,
VALUE  re2 
)
static
static VALUE rb_reg_error_desc ( VALUE  str,
int  options,
const char *  err 
)
static
static void rb_reg_expr_str ( VALUE  str,
const char *  s,
long  len,
rb_encoding enc,
rb_encoding resenc 
)
static
static VALUE rb_reg_fixed_encoding_p ( VALUE  re)
static

Definition at line 1224 of file re.c.

References FL_TEST, KCODE_FIXED, Qfalse, and Qtrue.

Referenced by Init_Regexp(), rb_reg_prepare_enc(), and rb_reg_s_union().

static VALUE rb_reg_hash ( VALUE  re)
static

Definition at line 2562 of file re.c.

References LONG2FIX, and reg_hash().

Referenced by Init_Regexp().

static VALUE rb_reg_init_copy ( VALUE  copy,
VALUE  re 
)
static
VALUE rb_reg_init_str ( VALUE  re,
VALUE  s,
int  options 
)

Definition at line 2488 of file re.c.

References err, NULL, rb_reg_initialize_str(), and rb_reg_raise_str().

Referenced by rb_reg_new_str().

static int rb_reg_initialize ( VALUE  obj,
const char *  s,
long  len,
rb_encoding enc,
int  options,
onig_errmsg_buffer  err,
const char *  sourcefile,
int  sourceline 
)
static
static VALUE rb_reg_initialize_m ( int  argc,
VALUE argv,
VALUE  self 
)
static
static int rb_reg_initialize_str ( VALUE  obj,
VALUE  str,
int  options,
onig_errmsg_buffer  err,
const char *  sourcefile,
int  sourceline 
)
static
static VALUE rb_reg_inspect ( VALUE  re)
static

Definition at line 491 of file re.c.

References rb_any_to_s(), rb_reg_desc(), RREGEXP, RREGEXP_SRC, RREGEXP_SRC_LEN, and RREGEXP_SRC_PTR.

Referenced by Init_Regexp().

VALUE rb_reg_last_match ( VALUE  match)

Definition at line 1483 of file re.c.

References rb_reg_nth_match().

Referenced by last_match_getter(), match_to_s(), and vm_getspecial().

VALUE rb_reg_match ( VALUE  re,
VALUE  str 
)

Definition at line 2741 of file re.c.

References LONG2FIX, Qnil, rb_str_sublen(), and reg_match_pos().

Referenced by Init_Regexp(), and rb_str_match().

VALUE rb_reg_match2 ( VALUE  re)

Definition at line 2800 of file re.c.

References LONG2FIX, Qnil, rb_backref_set(), rb_lastline_get(), rb_reg_search(), rb_str_sublen(), RB_TYPE_P, and T_STRING.

Referenced by Init_Regexp().

VALUE rb_reg_match_last ( VALUE  match)

Definition at line 1546 of file re.c.

References BEG, i, match_check(), NIL_P, re_registers::num_regs, Qnil, rb_reg_nth_match(), and RMATCH_REGS.

Referenced by last_paren_match_getter(), and vm_getspecial().

static VALUE rb_reg_match_m ( int  argc,
VALUE argv,
VALUE  re 
)
static
VALUE rb_reg_match_post ( VALUE  match)
VALUE rb_reg_match_pre ( VALUE  match)

Definition at line 1501 of file re.c.

References BEG, match_check(), NIL_P, OBJ_TAINT, OBJ_TAINTED, Qnil, rb_str_subseq(), RMATCH, and RMATCH_REGS.

Referenced by Init_Regexp(), prematch_getter(), and vm_getspecial().

static VALUE rb_reg_named_captures ( VALUE  re)
static

Definition at line 773 of file re.c.

References hash(), onig_foreach_name(), rb_hash_new(), rb_reg_check(), reg_named_captures_iter(), and RREGEXP.

Referenced by Init_Regexp().

static VALUE rb_reg_names ( VALUE  re)
static

Definition at line 726 of file re.c.

References onig_foreach_name(), rb_ary_new(), rb_reg_check(), reg_names_iter(), and RREGEXP.

Referenced by Init_Regexp(), and match_names().

VALUE rb_reg_new ( const char *  s,
long  len,
int  options 
)

Definition at line 2519 of file re.c.

References rb_ascii8bit_encoding(), and rb_enc_reg_new().

Referenced by date__strptime_internal(), proc_options(), and regcomp().

VALUE rb_reg_new_ary ( VALUE  ary,
int  opt 
)

Definition at line 2500 of file re.c.

References rb_reg_new_str(), and rb_reg_preprocess_dregexp().

VALUE rb_reg_new_str ( VALUE  s,
int  options 
)

Definition at line 2482 of file re.c.

References rb_reg_alloc(), and rb_reg_init_str().

Referenced by r_object0(), rb_reg_new_ary(), rb_reg_regcomp(), and rb_reg_s_union().

VALUE rb_reg_nth_defined ( int  nth,
VALUE  match 
)

Definition at line 1439 of file re.c.

References BEG, match_check(), NIL_P, re_registers::num_regs, Qfalse, Qnil, Qtrue, and RMATCH_REGS.

VALUE rb_reg_nth_match ( int  nth,
VALUE  match 
)
int rb_reg_options ( VALUE  re)
static VALUE rb_reg_options_m ( VALUE  re)
static

Definition at line 694 of file re.c.

References INT2NUM, options(), and rb_reg_options().

Referenced by Init_Regexp().

static rb_encoding* rb_reg_prepare_enc ( VALUE  re,
VALUE  str,
int  warn 
)
static
regex_t* rb_reg_prepare_re ( VALUE  re,
VALUE  str 
)
static VALUE rb_reg_preprocess ( const char *  p,
const char *  end,
rb_encoding enc,
rb_encoding **  fixed_enc,
onig_errmsg_buffer  err 
)
static
static VALUE rb_reg_preprocess_dregexp ( VALUE  ary,
int  options 
)
static
VALUE rb_reg_quote ( VALUE  str)
static void rb_reg_raise ( const char *  s,
long  len,
const char *  err,
VALUE  re 
)
static

Definition at line 606 of file re.c.

References rb_eRegexpError, rb_raise(), rb_reg_desc(), and RSTRING_PTR.

Referenced by rb_reg_init_copy(), rb_reg_prepare_re(), and rb_reg_search().

static void rb_reg_raise_str ( VALUE  str,
int  options,
const char *  err 
)
static

Definition at line 644 of file re.c.

References rb_exc_raise(), and rb_reg_error_desc().

Referenced by rb_reg_init_str(), and rb_reg_initialize_m().

VALUE rb_reg_regcomp ( VALUE  str)
VALUE rb_reg_regsub ( VALUE  str,
VALUE  src,
struct re_registers regs,
VALUE  regexp 
)
static VALUE rb_reg_s_alloc ( VALUE  klass)
static

Definition at line 2464 of file re.c.

References NEWOBJ_OF, and T_REGEXP.

Referenced by Init_Regexp(), and rb_reg_alloc().

static VALUE rb_reg_s_last_match ( int  argc,
VALUE argv 
)
static
static VALUE rb_reg_s_quote ( VALUE  c,
VALUE  str 
)
static

Definition at line 3072 of file re.c.

References rb_reg_quote(), reg_operand(), and TRUE.

Referenced by Init_Regexp(), and rb_reg_s_union().

static VALUE rb_reg_s_try_convert ( VALUE  dummy,
VALUE  re 
)
static

Definition at line 3113 of file re.c.

References rb_check_regexp_type().

Referenced by Init_Regexp().

static VALUE rb_reg_s_union ( VALUE  self,
VALUE  args0 
)
static
static VALUE rb_reg_s_union_m ( VALUE  self,
VALUE  args 
)
static

Definition at line 3251 of file re.c.

References NIL_P, RARRAY_LEN, rb_ary_entry(), rb_check_array_type(), rb_reg_s_union(), and v.

Referenced by Init_Regexp().

long rb_reg_search ( VALUE  re,
VALUE  str,
long  pos,
int  reverse 
)
static VALUE rb_reg_source ( VALUE  re)
static

Definition at line 468 of file re.c.

References OBJ_TAINT, OBJ_TAINTED, rb_enc_get(), rb_enc_str_new(), rb_reg_check(), RREGEXP_SRC_LEN, and RREGEXP_SRC_PTR.

Referenced by Init_Regexp().

static VALUE rb_reg_to_s ( VALUE  re)
static
static void re_warn ( const char *  s)
static

Definition at line 3493 of file re.c.

References rb_warn().

Referenced by Init_Regexp().

static int read_escaped_byte ( const char **  pp,
const char *  end,
onig_errmsg_buffer  err 
)
static

Definition at line 1907 of file re.c.

References errcpy, backref_name_tag::len, p, scan_hex, and scan_oct.

Referenced by unescape_escaped_nonascii().

static void reg_enc_error ( VALUE  re,
VALUE  str 
)
static

Definition at line 1238 of file re.c.

References rb_eEncCompatError, rb_enc_get(), rb_enc_name, and rb_raise().

Referenced by rb_reg_prepare_enc().

static st_index_t reg_hash ( VALUE  re)
static

Definition at line 2569 of file re.c.

References rb_hash_end(), rb_hash_uint(), rb_memhash(), rb_reg_check(), RREGEXP, RREGEXP_SRC_LEN, and RREGEXP_SRC_PTR.

Referenced by match_hash(), and rb_reg_hash().

static long reg_match_pos ( VALUE  re,
VALUE strp,
long  pos 
)
static
static int reg_named_captures_iter ( const OnigUChar name,
const OnigUChar name_end,
int  back_num,
int *  back_refs,
OnigRegex  regex,
void *  arg 
)
static

Definition at line 735 of file re.c.

References hash(), i, INT2NUM, rb_ary_new2(), rb_ary_store(), rb_hash_aset(), and rb_str_new().

Referenced by rb_reg_named_captures().

static int reg_names_iter ( const OnigUChar name,
const OnigUChar name_end,
int  back_num,
int *  back_refs,
OnigRegex  regex,
void *  arg 
)
static

Definition at line 701 of file re.c.

References rb_ary_push(), and rb_str_new().

Referenced by rb_reg_names().

static VALUE reg_operand ( VALUE  s,
int  check 
)
static

Definition at line 2659 of file re.c.

References rb_check_string_type(), rb_str_to_str(), rb_sym_to_s(), and SYMBOL_P.

Referenced by rb_reg_eqq(), rb_reg_s_quote(), and reg_match_pos().

static int unescape_escaped_nonascii ( const char **  pp,
const char *  end,
rb_encoding enc,
VALUE  buf,
rb_encoding **  encp,
onig_errmsg_buffer  err 
)
static
static int unescape_nonascii ( const char *  p,
const char *  end,
rb_encoding enc,
VALUE  buf,
rb_encoding **  encp,
int *  has_property,
onig_errmsg_buffer  err 
)
static
static int unescape_unicode_bmp ( const char **  pp,
const char *  end,
VALUE  buf,
rb_encoding **  encp,
onig_errmsg_buffer  err 
)
static

Definition at line 2140 of file re.c.

References append_utf8(), errcpy, backref_name_tag::len, p, and ruby_scan_hex().

Referenced by unescape_nonascii().

static int unescape_unicode_list ( const char **  pp,
const char *  end,
VALUE  buf,
rb_encoding **  encp,
onig_errmsg_buffer  err 
)
static

Definition at line 2103 of file re.c.

References append_utf8(), errcpy, ISSPACE, backref_name_tag::len, p, and ruby_scan_hex().

Referenced by unescape_nonascii().

static void update_char_offset ( VALUE  match)
static

Variable Documentation

VALUE rb_cMatch

Definition at line 840 of file re.c.

VALUE rb_cRegexp

Definition at line 1904 of file re.c.

VALUE rb_eRegexpError

Definition at line 20 of file re.c.

Referenced by Init_Regexp(), rb_enc_reg_error_desc(), rb_reg_preprocess_dregexp(), and rb_reg_raise().

VALUE reg_cache
static

Definition at line 2539 of file re.c.

Referenced by rb_reg_regcomp().