Ruby  2.0.0p598(2014-11-13revision48408)
Data Structures | Macros | Functions | Variables
date_parse.c File Reference
#include "ruby.h"
#include "ruby/encoding.h"
#include "ruby/re.h"
#include <ctype.h>

Go to the source code of this file.

Data Structures

struct  zone
 

Macros

#define sizeof_array(o)   (sizeof o / sizeof o[0])
 
#define f_negate(x)   rb_funcall(x, rb_intern("-@"), 0)
 
#define f_add(x, y)   rb_funcall(x, '+', 1, y)
 
#define f_sub(x, y)   rb_funcall(x, '-', 1, y)
 
#define f_mul(x, y)   rb_funcall(x, '*', 1, y)
 
#define f_div(x, y)   rb_funcall(x, '/', 1, y)
 
#define f_idiv(x, y)   rb_funcall(x, rb_intern("div"), 1, y)
 
#define f_mod(x, y)   rb_funcall(x, '%', 1, y)
 
#define f_expt(x, y)   rb_funcall(x, rb_intern("**"), 1, y)
 
#define f_lt_p(x, y)   rb_funcall(x, '<', 1, y)
 
#define f_gt_p(x, y)   rb_funcall(x, '>', 1, y)
 
#define f_le_p(x, y)   rb_funcall(x, rb_intern("<="), 1, y)
 
#define f_ge_p(x, y)   rb_funcall(x, rb_intern(">="), 1, y)
 
#define f_to_s(x)   rb_funcall(x, rb_intern("to_s"), 0)
 
#define f_match(r, s)   rb_funcall(r, rb_intern("match"), 1, s)
 
#define f_aref(o, i)   rb_funcall(o, rb_intern("[]"), 1, i)
 
#define f_aref2(o, i, j)   rb_funcall(o, rb_intern("[]"), 2, i, j)
 
#define f_begin(o, i)   rb_funcall(o, rb_intern("begin"), 1, i)
 
#define f_end(o, i)   rb_funcall(o, rb_intern("end"), 1, i)
 
#define f_aset(o, i, v)   rb_funcall(o, rb_intern("[]="), 2, i, v)
 
#define f_aset2(o, i, j, v)   rb_funcall(o, rb_intern("[]="), 3, i, j, v)
 
#define f_sub_bang(s, r, x)   rb_funcall(s, rb_intern("sub!"), 2, r, x)
 
#define f_gsub_bang(s, r, x)   rb_funcall(s, rb_intern("gsub!"), 2, r, x)
 
#define set_hash(k, v)   rb_hash_aset(hash, ID2SYM(rb_intern(k)), v)
 
#define ref_hash(k)   rb_hash_aref(hash, ID2SYM(rb_intern(k)))
 
#define del_hash(k)   rb_hash_delete(hash, ID2SYM(rb_intern(k)))
 
#define cstr2num(s)   rb_cstr_to_inum(s, 10, 0)
 
#define str2num(s)   rb_str_to_inum(s, 10, 0)
 
#define issign(c)   ((c) == '-' || (c) == '+')
 
#define asp_string()   rb_str_new(" ", 1)
 
#define DECDIGIT   "0123456789"
 
#define DAYS   "sunday|monday|tuesday|wednesday|thursday|friday|saturday"
 
#define MONTHS   "january|february|march|april|may|june|july|august|september|october|november|december"
 
#define ABBR_DAYS   "sun|mon|tue|wed|thu|fri|sat"
 
#define ABBR_MONTHS   "jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec"
 
#define REGCOMP(pat, opt)
 
#define REGCOMP_0(pat)   REGCOMP(pat, 0)
 
#define REGCOMP_I(pat)   REGCOMP(pat, ONIG_OPTION_IGNORECASE)
 
#define MATCH(s, p, c)
 
#define SUBS(s, p, c)
 
#define STD   " standard time"
 
#define DST   " daylight time"
 
#define DST   " dst"
 
#define HAVE_ALPHA   (1<<0)
 
#define HAVE_DIGIT   (1<<1)
 
#define HAVE_DASH   (1<<2)
 
#define HAVE_DOT   (1<<3)
 
#define HAVE_SLASH   (1<<4)
 
#define HAVE_ELEM_P(x)   ((check_class(str) & (x)) == (x))
 
#define SNUM   14
 
#define SNUM   17
 
#define SNUM   5
 
#define iso8601_bas_time_cb   iso8601_ext_time_cb
 
#define SNUM   8
 
#define SNUM   8
 
#define SNUM   5
 
#define SNUM   4
 
#define SNUM   8
 
#define SNUM   8
 
#define SNUM   8
 
#define SNUM   7
 
#define SNUM   9
 

Functions

static void s3e (VALUE hash, VALUE y, VALUE m, VALUE d, int bc)
 
static VALUE regcomp (const char *source, long len, int opt)
 
static int match (VALUE str, VALUE pat, VALUE hash, int(*cb)(VALUE, VALUE))
 
static int subx (VALUE str, VALUE rep, VALUE pat, VALUE hash, int(*cb)(VALUE, VALUE))
 
VALUE date_zone_to_diff (VALUE str)
 
static int day_num (VALUE s)
 
static int mon_num (VALUE s)
 
static int parse_day_cb (VALUE m, VALUE hash)
 
static int parse_day (VALUE str, VALUE hash)
 
static int parse_time2_cb (VALUE m, VALUE hash)
 
static int parse_time_cb (VALUE m, VALUE hash)
 
static int parse_time (VALUE str, VALUE hash)
 
static int parse_eu_cb (VALUE m, VALUE hash)
 
static int parse_eu (VALUE str, VALUE hash)
 
static int parse_us_cb (VALUE m, VALUE hash)
 
static int parse_us (VALUE str, VALUE hash)
 
static int parse_iso_cb (VALUE m, VALUE hash)
 
static int parse_iso (VALUE str, VALUE hash)
 
static int parse_iso21_cb (VALUE m, VALUE hash)
 
static int parse_iso21 (VALUE str, VALUE hash)
 
static int parse_iso22_cb (VALUE m, VALUE hash)
 
static int parse_iso22 (VALUE str, VALUE hash)
 
static int parse_iso23_cb (VALUE m, VALUE hash)
 
static int parse_iso23 (VALUE str, VALUE hash)
 
static int parse_iso24_cb (VALUE m, VALUE hash)
 
static int parse_iso24 (VALUE str, VALUE hash)
 
static int parse_iso25_cb (VALUE m, VALUE hash)
 
static int parse_iso25 (VALUE str, VALUE hash)
 
static int parse_iso26_cb (VALUE m, VALUE hash)
 
static int parse_iso26 (VALUE str, VALUE hash)
 
static int parse_iso2 (VALUE str, VALUE hash)
 
static int gengo (int c)
 
static int parse_jis_cb (VALUE m, VALUE hash)
 
static int parse_jis (VALUE str, VALUE hash)
 
static int parse_vms11_cb (VALUE m, VALUE hash)
 
static int parse_vms11 (VALUE str, VALUE hash)
 
static int parse_vms12_cb (VALUE m, VALUE hash)
 
static int parse_vms12 (VALUE str, VALUE hash)
 
static int parse_vms (VALUE str, VALUE hash)
 
static int parse_sla_cb (VALUE m, VALUE hash)
 
static int parse_sla (VALUE str, VALUE hash)
 
static int parse_dot_cb (VALUE m, VALUE hash)
 
static int parse_dot (VALUE str, VALUE hash)
 
static int parse_year_cb (VALUE m, VALUE hash)
 
static int parse_year (VALUE str, VALUE hash)
 
static int parse_mon_cb (VALUE m, VALUE hash)
 
static int parse_mon (VALUE str, VALUE hash)
 
static int parse_mday_cb (VALUE m, VALUE hash)
 
static int parse_mday (VALUE str, VALUE hash)
 
static int n2i (const char *s, long f, long w)
 
static int parse_ddd_cb (VALUE m, VALUE hash)
 
static int parse_ddd (VALUE str, VALUE hash)
 
static int parse_bc_cb (VALUE m, VALUE hash)
 
static int parse_bc (VALUE str, VALUE hash)
 
static int parse_frag_cb (VALUE m, VALUE hash)
 
static int parse_frag (VALUE str, VALUE hash)
 
static unsigned check_class (VALUE s)
 
VALUE date__parse (VALUE str, VALUE comp)
 
static VALUE comp_year69 (VALUE y)
 
static VALUE comp_year50 (VALUE y)
 
static VALUE sec_fraction (VALUE f)
 
static int iso8601_ext_datetime_cb (VALUE m, VALUE hash)
 
static int iso8601_ext_datetime (VALUE str, VALUE hash)
 
static int iso8601_bas_datetime_cb (VALUE m, VALUE hash)
 
static int iso8601_bas_datetime (VALUE str, VALUE hash)
 
static int iso8601_ext_time_cb (VALUE m, VALUE hash)
 
static int iso8601_ext_time (VALUE str, VALUE hash)
 
static int iso8601_bas_time (VALUE str, VALUE hash)
 
VALUE date__iso8601 (VALUE str)
 
static int rfc3339_cb (VALUE m, VALUE hash)
 
static int rfc3339 (VALUE str, VALUE hash)
 
VALUE date__rfc3339 (VALUE str)
 
static int xmlschema_datetime_cb (VALUE m, VALUE hash)
 
static int xmlschema_datetime (VALUE str, VALUE hash)
 
static int xmlschema_time_cb (VALUE m, VALUE hash)
 
static int xmlschema_time (VALUE str, VALUE hash)
 
static int xmlschema_trunc_cb (VALUE m, VALUE hash)
 
static int xmlschema_trunc (VALUE str, VALUE hash)
 
VALUE date__xmlschema (VALUE str)
 
static int rfc2822_cb (VALUE m, VALUE hash)
 
static int rfc2822 (VALUE str, VALUE hash)
 
VALUE date__rfc2822 (VALUE str)
 
static int httpdate_type1_cb (VALUE m, VALUE hash)
 
static int httpdate_type1 (VALUE str, VALUE hash)
 
static int httpdate_type2_cb (VALUE m, VALUE hash)
 
static int httpdate_type2 (VALUE str, VALUE hash)
 
static int httpdate_type3_cb (VALUE m, VALUE hash)
 
static int httpdate_type3 (VALUE str, VALUE hash)
 
VALUE date__httpdate (VALUE str)
 
static int jisx0301_cb (VALUE m, VALUE hash)
 
static int jisx0301 (VALUE str, VALUE hash)
 
VALUE date__jisx0301 (VALUE str)
 

Variables

static const char * abbr_days []
 
static const char * abbr_months []
 
static struct zone zones_source []
 

Macro Definition Documentation

#define ABBR_DAYS   "sun|mon|tue|wed|thu|fri|sat"

Definition at line 228 of file date_parse.c.

Referenced by httpdate_type1(), httpdate_type3(), parse_day(), and rfc2822().

#define ABBR_MONTHS   "jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec"
#define asp_string ( )    rb_str_new(" ", 1)

Definition at line 58 of file date_parse.c.

Referenced by date__parse().

#define cstr2num (   s)    rb_cstr_to_inum(s, 10, 0)

Definition at line 44 of file date_parse.c.

Referenced by date_zone_to_diff(), and s3e().

#define DAYS   "sunday|monday|tuesday|wednesday|thursday|friday|saturday"

Definition at line 226 of file date_parse.c.

Referenced by httpdate_type2().

#define DECDIGIT   "0123456789"

Definition at line 66 of file date_parse.c.

Referenced by s3e().

#define del_hash (   k)    rb_hash_delete(hash, ID2SYM(rb_intern(k)))

Definition at line 42 of file date_parse.c.

Referenced by date__parse().

#define DST   " daylight time"

Referenced by date_zone_to_diff().

#define DST   " dst"
#define f_add (   x,
 
)    rb_funcall(x, '+', 1, y)
#define f_aref (   o,
  i 
)    rb_funcall(o, rb_intern("[]"), 1, i)

Definition at line 31 of file date_parse.c.

Referenced by date_zone_to_diff().

#define f_aref2 (   o,
  i,
 
)    rb_funcall(o, rb_intern("[]"), 2, i, j)

Definition at line 32 of file date_parse.c.

#define f_aset (   o,
  i,
  v 
)    rb_funcall(o, rb_intern("[]="), 2, i, v)

Definition at line 35 of file date_parse.c.

#define f_aset2 (   o,
  i,
  j,
  v 
)    rb_funcall(o, rb_intern("[]="), 3, i, j, v)

Definition at line 36 of file date_parse.c.

Referenced by subx().

#define f_begin (   o,
  i 
)    rb_funcall(o, rb_intern("begin"), 1, i)

Definition at line 33 of file date_parse.c.

Referenced by subx().

#define f_div (   x,
 
)    rb_funcall(x, '/', 1, y)

Definition at line 18 of file date_parse.c.

#define f_end (   o,
  i 
)    rb_funcall(o, rb_intern("end"), 1, i)

Definition at line 34 of file date_parse.c.

Referenced by subx().

#define f_expt (   x,
 
)    rb_funcall(x, rb_intern("**"), 1, y)

Definition at line 21 of file date_parse.c.

Referenced by date_zone_to_diff(), parse_ddd_cb(), parse_time2_cb(), and sec_fraction().

#define f_ge_p (   x,
 
)    rb_funcall(x, rb_intern(">="), 1, y)

Definition at line 26 of file date_parse.c.

Referenced by comp_year50(), comp_year69(), date__parse(), httpdate_type2_cb(), and parse_frag_cb().

#define f_gsub_bang (   s,
  r,
 
)    rb_funcall(s, rb_intern("gsub!"), 2, r, x)

Definition at line 38 of file date_parse.c.

Referenced by date__parse().

#define f_gt_p (   x,
 
)    rb_funcall(x, '>', 1, y)

Definition at line 24 of file date_parse.c.

#define f_idiv (   x,
 
)    rb_funcall(x, rb_intern("div"), 1, y)

Definition at line 19 of file date_parse.c.

#define f_le_p (   x,
 
)    rb_funcall(x, rb_intern("<="), 1, y)

Definition at line 25 of file date_parse.c.

Referenced by date__parse(), httpdate_type2_cb(), and parse_frag_cb().

#define f_lt_p (   x,
 
)    rb_funcall(x, '<', 1, y)

Definition at line 23 of file date_parse.c.

#define f_match (   r,
  s 
)    rb_funcall(r, rb_intern("match"), 1, s)

Definition at line 30 of file date_parse.c.

Referenced by match(), parse_iso25(), parse_iso26(), parse_time_cb(), and subx().

#define f_mod (   x,
 
)    rb_funcall(x, '%', 1, y)

Definition at line 20 of file date_parse.c.

#define f_mul (   x,
 
)    rb_funcall(x, '*', 1, y)

Definition at line 17 of file date_parse.c.

Referenced by date_zone_to_diff().

#define f_negate (   x)    rb_funcall(x, rb_intern("-@"), 0)

Definition at line 14 of file date_parse.c.

Referenced by date__parse(), and date_zone_to_diff().

#define f_sub (   x,
 
)    rb_funcall(x, '-', 1, y)

Definition at line 16 of file date_parse.c.

#define f_sub_bang (   s,
  r,
 
)    rb_funcall(s, rb_intern("sub!"), 2, r, x)

Definition at line 37 of file date_parse.c.

#define f_to_s (   x)    rb_funcall(x, rb_intern("to_s"), 0)

Definition at line 28 of file date_parse.c.

Referenced by s3e().

#define HAVE_ALPHA   (1<<0)

Definition at line 2144 of file date_parse.c.

Referenced by check_class(), and date__parse().

#define HAVE_DASH   (1<<2)

Definition at line 2146 of file date_parse.c.

Referenced by check_class(), and date__parse().

#define HAVE_DIGIT   (1<<1)

Definition at line 2145 of file date_parse.c.

Referenced by check_class(), and date__parse().

#define HAVE_DOT   (1<<3)

Definition at line 2147 of file date_parse.c.

Referenced by check_class(), and date__parse().

#define HAVE_ELEM_P (   x)    ((check_class(str) & (x)) == (x))

Definition at line 2172 of file date_parse.c.

Referenced by date__parse().

#define HAVE_SLASH   (1<<4)

Definition at line 2148 of file date_parse.c.

Referenced by check_class(), and date__parse().

#define iso8601_bas_time_cb   iso8601_ext_time_cb

Definition at line 2573 of file date_parse.c.

Referenced by iso8601_bas_time().

#define issign (   c)    ((c) == '-' || (c) == '+')

Definition at line 57 of file date_parse.c.

Referenced by date_zone_to_diff(), and s3e().

#define MATCH (   s,
  p,
  c 
)
Value:
{ \
}
Win32OLEIDispatch * p
Definition: win32ole.c:786
return
Definition: bigdecimal.c:5821
VALUE hash
Definition: tkutil.c:267
register char * s
Definition: os2.c:56
VpDivd * c
Definition: bigdecimal.c:1219
static int match(VALUE str, VALUE pat, VALUE hash, int(*cb)(VALUE, VALUE))
Definition: date_parse.c:273

Definition at line 267 of file date_parse.c.

Referenced by httpdate_type1(), httpdate_type2(), httpdate_type3(), iso8601_bas_datetime(), iso8601_bas_time(), iso8601_ext_datetime(), iso8601_ext_time(), jisx0301(), rfc2822(), rfc3339(), xmlschema_datetime(), xmlschema_time(), and xmlschema_trunc().

#define MONTHS   "january|february|march|april|may|june|july|august|september|october|november|december"

Definition at line 227 of file date_parse.c.

#define ref_hash (   k)    rb_hash_aref(hash, ID2SYM(rb_intern(k)))

Definition at line 41 of file date_parse.c.

Referenced by date__parse(), and parse_frag_cb().

#define REGCOMP (   pat,
  opt 
)
Value:
{ \
pat = regcomp(pat##_source, sizeof pat##_source - 1, opt); \
}
UChar * pat
Definition: regerror.c:392
NIL_P(eventloop_thread)
Definition: tcltklib.c:4067
static VALUE regcomp(const char *source, long len, int opt)
Definition: date_parse.c:249
if(RB_TYPE_P(r, T_FLOAT))
Definition: bigdecimal.c:1200

Definition at line 258 of file date_parse.c.

#define REGCOMP_0 (   pat)    REGCOMP(pat, 0)
#define REGCOMP_I (   pat)    REGCOMP(pat, ONIG_OPTION_IGNORECASE)
#define set_hash (   k,
  v 
)    rb_hash_aset(hash, ID2SYM(rb_intern(k)), v)
#define sizeof_array (   o)    (sizeof o / sizeof o[0])

Definition at line 12 of file date_parse.c.

Referenced by date_zone_to_diff(), day_num(), and mon_num().

#define SNUM   14
#define SNUM   17

Definition at line 3056 of file date_parse.c.

#define SNUM   5

Definition at line 3056 of file date_parse.c.

#define SNUM   8

Definition at line 3056 of file date_parse.c.

#define SNUM   8

Definition at line 3056 of file date_parse.c.

#define SNUM   5

Definition at line 3056 of file date_parse.c.

#define SNUM   4

Definition at line 3056 of file date_parse.c.

#define SNUM   8

Definition at line 3056 of file date_parse.c.

#define SNUM   8

Definition at line 3056 of file date_parse.c.

#define SNUM   8

Definition at line 3056 of file date_parse.c.

#define SNUM   7

Definition at line 3056 of file date_parse.c.

#define SNUM   9

Definition at line 3056 of file date_parse.c.

#define STD   " standard time"

Referenced by date_zone_to_diff().

#define str2num (   s)    rb_str_to_inum(s, 10, 0)
#define SUBS (   s,
  p,
  c 
)
Value:
{ \
}
Win32OLEIDispatch * p
Definition: win32ole.c:786
return
Definition: bigdecimal.c:5821
static int subx(VALUE str, VALUE rep, VALUE pat, VALUE hash, int(*cb)(VALUE, VALUE))
Definition: date_parse.c:288
#define asp_string()
Definition: date_parse.c:58
VALUE hash
Definition: tkutil.c:267
register char * s
Definition: os2.c:56
VpDivd * c
Definition: bigdecimal.c:1219

Definition at line 309 of file date_parse.c.

Referenced by parse_bc(), parse_day(), parse_ddd(), parse_dot(), parse_eu(), parse_frag(), parse_iso(), parse_iso21(), parse_iso22(), parse_iso23(), parse_iso24(), parse_iso25(), parse_iso26(), parse_jis(), parse_mday(), parse_mon(), parse_sla(), parse_time(), parse_us(), parse_vms11(), parse_vms12(), and parse_year().

Function Documentation

static unsigned check_class ( VALUE  s)
static

Definition at line 2151 of file date_parse.c.

References flags, HAVE_ALPHA, HAVE_DASH, HAVE_DIGIT, HAVE_DOT, HAVE_SLASH, i, RSTRING_LEN, and RSTRING_PTR.

static VALUE comp_year50 ( VALUE  y)
static

Definition at line 2353 of file date_parse.c.

References f_add, f_ge_p, and INT2FIX.

Referenced by rfc2822_cb().

static VALUE comp_year69 ( VALUE  y)
static

Definition at line 2345 of file date_parse.c.

References f_add, f_ge_p, and INT2FIX.

Referenced by httpdate_type2_cb(), iso8601_bas_datetime_cb(), and iso8601_ext_datetime_cb().

VALUE date__httpdate ( VALUE  str)
VALUE date__iso8601 ( VALUE  str)
VALUE date__jisx0301 ( VALUE  str)
VALUE date__parse ( VALUE  str,
VALUE  comp 
)
VALUE date__rfc2822 ( VALUE  str)

Definition at line 2887 of file date_parse.c.

References hash, rb_backref_get(), rb_backref_set(), rb_hash_new(), rb_match_busy(), and rfc2822().

Referenced by date_s__rfc2822().

VALUE date__rfc3339 ( VALUE  str)

Definition at line 2668 of file date_parse.c.

References hash, rb_backref_get(), rb_backref_set(), rb_hash_new(), rb_match_busy(), and rfc3339().

Referenced by date_s__rfc3339().

VALUE date__xmlschema ( VALUE  str)
VALUE date_zone_to_diff ( VALUE  str)
static int day_num ( VALUE  s)
static
static int gengo ( int  c)
static

Definition at line 1332 of file date_parse.c.

References e.

Referenced by jisx0301_cb(), and parse_jis_cb().

static int httpdate_type1 ( VALUE  str,
VALUE  hash 
)
static

Definition at line 2929 of file date_parse.c.

References ABBR_DAYS, ABBR_MONTHS, httpdate_type1_cb(), MATCH, Qnil, and REGCOMP_I.

Referenced by date__httpdate().

static int httpdate_type1_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 2904 of file date_parse.c.

References day_num(), i, INT2FIX, mon_num(), Qnil, rb_reg_nth_match(), set_hash, SNUM, and str2num.

Referenced by httpdate_type1().

static int httpdate_type2 ( VALUE  str,
VALUE  hash 
)
static

Definition at line 2976 of file date_parse.c.

References ABBR_MONTHS, DAYS, httpdate_type2_cb(), MATCH, Qnil, and REGCOMP_I.

Referenced by date__httpdate().

static int httpdate_type2_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 2948 of file date_parse.c.

References comp_year69(), day_num(), f_ge_p, f_le_p, i, INT2FIX, mon_num(), Qnil, rb_reg_nth_match(), set_hash, SNUM, and str2num.

Referenced by httpdate_type2().

static int httpdate_type3 ( VALUE  str,
VALUE  hash 
)
static

Definition at line 3018 of file date_parse.c.

References ABBR_DAYS, ABBR_MONTHS, httpdate_type3_cb(), MATCH, Qnil, and REGCOMP_I.

Referenced by date__httpdate().

static int httpdate_type3_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 2995 of file date_parse.c.

References day_num(), i, INT2FIX, mon_num(), Qnil, rb_reg_nth_match(), set_hash, SNUM, and str2num.

Referenced by httpdate_type3().

static int iso8601_bas_datetime ( VALUE  str,
VALUE  hash 
)
static

Definition at line 2526 of file date_parse.c.

References iso8601_bas_datetime_cb(), MATCH, Qnil, and REGCOMP_I.

Referenced by date__iso8601().

static int iso8601_bas_datetime_cb ( VALUE  m,
VALUE  hash 
)
static
static int iso8601_bas_time ( VALUE  str,
VALUE  hash 
)
static

Definition at line 2588 of file date_parse.c.

References iso8601_bas_time_cb, MATCH, Qnil, and REGCOMP_I.

Referenced by date__iso8601().

static int iso8601_ext_datetime ( VALUE  str,
VALUE  hash 
)
static

Definition at line 2437 of file date_parse.c.

References iso8601_ext_datetime_cb(), MATCH, Qnil, and REGCOMP_I.

Referenced by date__iso8601().

static int iso8601_ext_datetime_cb ( VALUE  m,
VALUE  hash 
)
static
static int iso8601_ext_time ( VALUE  str,
VALUE  hash 
)
static

Definition at line 2576 of file date_parse.c.

References iso8601_ext_time_cb(), MATCH, Qnil, and REGCOMP_I.

Referenced by date__iso8601().

static int iso8601_ext_time_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 2548 of file date_parse.c.

References date_zone_to_diff(), i, NIL_P(), Qnil, rb_reg_nth_match(), sec_fraction(), set_hash, SNUM, and str2num.

Referenced by iso8601_ext_time().

static int jisx0301 ( VALUE  str,
VALUE  hash 
)
static

Definition at line 3093 of file date_parse.c.

References jisx0301_cb(), MATCH, Qnil, and REGCOMP_I.

Referenced by date__jisx0301().

static int jisx0301_cb ( VALUE  m,
VALUE  hash 
)
static
static int match ( VALUE  str,
VALUE  pat,
VALUE  hash,
int(*)(VALUE, VALUE cb 
)
static
static int mon_num ( VALUE  s)
static
static int n2i ( const char *  s,
long  f,
long  w 
)
static

Definition at line 1790 of file date_parse.c.

References e, i, and v.

Referenced by parse_ddd_cb().

static int parse_bc ( VALUE  str,
VALUE  hash 
)
static

Definition at line 2050 of file date_parse.c.

References parse_bc_cb(), Qnil, REGCOMP_I, and SUBS.

Referenced by date__parse().

static int parse_bc_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 2043 of file date_parse.c.

References Qtrue, and set_hash.

Referenced by parse_bc().

static int parse_day ( VALUE  str,
VALUE  hash 
)
static

Definition at line 644 of file date_parse.c.

References ABBR_DAYS, parse_day_cb(), Qnil, REGCOMP_I, and SUBS.

Referenced by date__parse().

static int parse_day_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 634 of file date_parse.c.

References day_num(), INT2FIX, rb_reg_nth_match(), s, and set_hash.

Referenced by parse_day().

static int parse_ddd ( VALUE  str,
VALUE  hash 
)
static

Definition at line 2008 of file date_parse.c.

References parse_ddd_cb(), Qnil, REGCOMP_I, and SUBS.

Referenced by date__parse().

static int parse_ddd_cb ( VALUE  m,
VALUE  hash 
)
static
static int parse_dot ( VALUE  str,
VALUE  hash 
)
static

Definition at line 1610 of file date_parse.c.

References parse_dot_cb(), Qnil, REGCOMP_I, and SUBS.

Referenced by date__parse().

static int parse_dot_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 1592 of file date_parse.c.

References d, rb_reg_nth_match(), and s3e().

Referenced by parse_dot().

static int parse_eu ( VALUE  str,
VALUE  hash 
)
static

Definition at line 915 of file date_parse.c.

References ABBR_MONTHS, parse_eu_cb(), Qnil, REGCOMP_I, and SUBS.

Referenced by date__parse().

static int parse_eu_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 882 of file date_parse.c.

References b, d, INT2FIX, mon_num(), NIL_P(), rb_reg_nth_match(), RSTRING_PTR, and s3e().

Referenced by parse_eu().

static int parse_frag ( VALUE  str,
VALUE  hash 
)
static

Definition at line 2084 of file date_parse.c.

References parse_frag_cb(), Qnil, REGCOMP_I, and SUBS.

Referenced by date__parse().

static int parse_frag_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 2061 of file date_parse.c.

References f_ge_p, f_le_p, INT2FIX, n, NIL_P(), rb_reg_nth_match(), ref_hash, s, set_hash, and str2num.

Referenced by parse_frag().

static int parse_iso ( VALUE  str,
VALUE  hash 
)
static

Definition at line 1057 of file date_parse.c.

References parse_iso_cb(), Qnil, REGCOMP_0, and SUBS.

Referenced by date__parse().

static int parse_iso2 ( VALUE  str,
VALUE  hash 
)
static

Definition at line 1311 of file date_parse.c.

References parse_iso21(), parse_iso22(), parse_iso23(), parse_iso24(), parse_iso25(), and parse_iso26().

Referenced by date__parse().

static int parse_iso21 ( VALUE  str,
VALUE  hash 
)
static

Definition at line 1095 of file date_parse.c.

References parse_iso21_cb(), Qnil, REGCOMP_I, and SUBS.

Referenced by parse_iso2().

static int parse_iso21_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 1077 of file date_parse.c.

References d, NIL_P(), rb_reg_nth_match(), set_hash, and str2num.

Referenced by parse_iso21().

static int parse_iso22 ( VALUE  str,
VALUE  hash 
)
static

Definition at line 1125 of file date_parse.c.

References parse_iso22_cb(), Qnil, REGCOMP_I, and SUBS.

Referenced by parse_iso2().

static int parse_iso22_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 1115 of file date_parse.c.

References d, rb_reg_nth_match(), set_hash, and str2num.

Referenced by parse_iso22().

static int parse_iso23 ( VALUE  str,
VALUE  hash 
)
static

Definition at line 1160 of file date_parse.c.

References parse_iso23_cb(), Qnil, REGCOMP_0, and SUBS.

Referenced by parse_iso2().

static int parse_iso23_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 1145 of file date_parse.c.

References d, NIL_P(), rb_reg_nth_match(), set_hash, and str2num.

Referenced by parse_iso23().

static int parse_iso24 ( VALUE  str,
VALUE  hash 
)
static

Definition at line 1195 of file date_parse.c.

References parse_iso24_cb(), Qnil, REGCOMP_0, and SUBS.

Referenced by parse_iso2().

static int parse_iso24_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 1180 of file date_parse.c.

References d, NIL_P(), rb_reg_nth_match(), set_hash, and str2num.

Referenced by parse_iso24().

static int parse_iso25 ( VALUE  str,
VALUE  hash 
)
static

Definition at line 1229 of file date_parse.c.

References f_match, NIL_P(), parse_iso25_cb(), Qnil, REGCOMP_0, and SUBS.

Referenced by parse_iso2().

static int parse_iso25_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 1215 of file date_parse.c.

References d, rb_reg_nth_match(), set_hash, and str2num.

Referenced by parse_iso25().

static int parse_iso26 ( VALUE  str,
VALUE  hash 
)
static

Definition at line 1275 of file date_parse.c.

References f_match, NIL_P(), parse_iso26_cb(), Qnil, REGCOMP_0, and SUBS.

Referenced by parse_iso2().

static int parse_iso26_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 1265 of file date_parse.c.

References d, rb_reg_nth_match(), set_hash, and str2num.

Referenced by parse_iso26().

static int parse_iso_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 1039 of file date_parse.c.

References d, rb_reg_nth_match(), and s3e().

Referenced by parse_iso().

static int parse_jis ( VALUE  str,
VALUE  hash 
)
static

Definition at line 1367 of file date_parse.c.

References parse_jis_cb(), Qnil, REGCOMP_I, and SUBS.

Referenced by date__parse().

static int parse_jis_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 1347 of file date_parse.c.

References d, e, f_add, gengo(), INT2FIX, rb_reg_nth_match(), RSTRING_PTR, set_hash, and str2num.

Referenced by parse_jis().

static int parse_mday ( VALUE  str,
VALUE  hash 
)
static

Definition at line 1770 of file date_parse.c.

References parse_mday_cb(), Qnil, REGCOMP_I, and SUBS.

Referenced by date__parse().

static int parse_mday_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 1760 of file date_parse.c.

References d, rb_reg_nth_match(), set_hash, and str2num.

Referenced by parse_mday().

static int parse_mon ( VALUE  str,
VALUE  hash 
)
static

Definition at line 1740 of file date_parse.c.

References ABBR_MONTHS, parse_mon_cb(), Qnil, REGCOMP_I, and SUBS.

Referenced by date__parse().

static int parse_mon_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 1730 of file date_parse.c.

References INT2FIX, mon_num(), rb_reg_nth_match(), and set_hash.

Referenced by parse_mon().

static int parse_sla ( VALUE  str,
VALUE  hash 
)
static

Definition at line 1502 of file date_parse.c.

References parse_sla_cb(), Qnil, REGCOMP_I, and SUBS.

Referenced by date__parse().

static int parse_sla_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 1484 of file date_parse.c.

References d, rb_reg_nth_match(), and s3e().

Referenced by parse_sla().

static int parse_time ( VALUE  str,
VALUE  hash 
)
static

Definition at line 740 of file date_parse.c.

References parse_time_cb(), Qnil, REGCOMP_I, and SUBS.

Referenced by date__parse().

static int parse_time2_cb ( VALUE  m,
VALUE  hash 
)
static
static int parse_time_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 707 of file date_parse.c.

References f_match, NIL_P(), parse_time2_cb(), Qnil, rb_reg_nth_match(), REGCOMP_I, and set_hash.

Referenced by parse_time().

static int parse_us ( VALUE  str,
VALUE  hash 
)
static

Definition at line 993 of file date_parse.c.

References ABBR_MONTHS, parse_us_cb(), Qnil, REGCOMP_I, and SUBS.

Referenced by date__parse().

static int parse_us_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 959 of file date_parse.c.

References b, d, INT2FIX, mon_num(), NIL_P(), rb_reg_nth_match(), RSTRING_PTR, and s3e().

Referenced by parse_us().

static int parse_vms ( VALUE  str,
VALUE  hash 
)
static

Definition at line 1471 of file date_parse.c.

References parse_vms11(), and parse_vms12().

Referenced by date__parse().

static int parse_vms11 ( VALUE  str,
VALUE  hash 
)
static

Definition at line 1407 of file date_parse.c.

References ABBR_MONTHS, parse_vms11_cb(), Qnil, REGCOMP_I, and SUBS.

Referenced by parse_vms().

static int parse_vms11_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 1387 of file date_parse.c.

References d, INT2FIX, mon_num(), rb_reg_nth_match(), and s3e().

Referenced by parse_vms11().

static int parse_vms12 ( VALUE  str,
VALUE  hash 
)
static

Definition at line 1449 of file date_parse.c.

References ABBR_MONTHS, parse_vms12_cb(), Qnil, REGCOMP_I, and SUBS.

Referenced by parse_vms().

static int parse_vms12_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 1429 of file date_parse.c.

References d, INT2FIX, mon_num(), rb_reg_nth_match(), and s3e().

Referenced by parse_vms12().

static int parse_year ( VALUE  str,
VALUE  hash 
)
static

Definition at line 1710 of file date_parse.c.

References parse_year_cb(), Qnil, REGCOMP_0, and SUBS.

Referenced by date__parse().

static int parse_year_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 1700 of file date_parse.c.

References rb_reg_nth_match(), set_hash, and str2num.

Referenced by parse_year().

static VALUE regcomp ( const char *  source,
long  len,
int  opt 
)
static

Definition at line 249 of file date_parse.c.

References pat, rb_gc_register_mark_object(), and rb_reg_new().

static int rfc2822 ( VALUE  str,
VALUE  hash 
)
static

Definition at line 2871 of file date_parse.c.

References ABBR_DAYS, ABBR_MONTHS, MATCH, Qnil, REGCOMP_I, and rfc2822_cb().

Referenced by date__rfc2822().

static int rfc2822_cb ( VALUE  m,
VALUE  hash 
)
static
static int rfc3339 ( VALUE  str,
VALUE  hash 
)
static

Definition at line 2654 of file date_parse.c.

References MATCH, Qnil, REGCOMP_I, and rfc3339_cb().

Referenced by date__rfc3339().

static int rfc3339_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 2628 of file date_parse.c.

References date_zone_to_diff(), i, NIL_P(), Qnil, rb_reg_nth_match(), sec_fraction(), set_hash, SNUM, and str2num.

Referenced by rfc3339().

static void s3e ( VALUE  hash,
VALUE  y,
VALUE  m,
VALUE  d,
int  bc 
)
static
static VALUE sec_fraction ( VALUE  f)
static
static int subx ( VALUE  str,
VALUE  rep,
VALUE  pat,
VALUE  hash,
int(*)(VALUE, VALUE cb 
)
static

Definition at line 288 of file date_parse.c.

References f_aset2, f_begin, f_end, f_match, hash, INT2FIX, LONG2NUM, m, NIL_P(), and NUM2LONG.

static int xmlschema_datetime ( VALUE  str,
VALUE  hash 
)
static

Definition at line 2718 of file date_parse.c.

References MATCH, Qnil, REGCOMP_I, and xmlschema_datetime_cb().

Referenced by date__xmlschema().

static int xmlschema_datetime_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 2685 of file date_parse.c.

References date_zone_to_diff(), i, NIL_P(), Qnil, rb_reg_nth_match(), sec_fraction(), set_hash, SNUM, and str2num.

Referenced by xmlschema_datetime().

static int xmlschema_time ( VALUE  str,
VALUE  hash 
)
static

Definition at line 2761 of file date_parse.c.

References MATCH, Qnil, REGCOMP_I, and xmlschema_time_cb().

Referenced by date__xmlschema().

static int xmlschema_time_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 2735 of file date_parse.c.

References date_zone_to_diff(), i, NIL_P(), Qnil, rb_reg_nth_match(), sec_fraction(), set_hash, SNUM, and str2num.

Referenced by xmlschema_time().

static int xmlschema_trunc ( VALUE  str,
VALUE  hash 
)
static

Definition at line 2802 of file date_parse.c.

References MATCH, Qnil, REGCOMP_I, and xmlschema_trunc_cb().

Referenced by date__xmlschema().

static int xmlschema_trunc_cb ( VALUE  m,
VALUE  hash 
)
static

Definition at line 2776 of file date_parse.c.

References date_zone_to_diff(), i, NIL_P(), Qnil, rb_reg_nth_match(), set_hash, SNUM, and str2num.

Referenced by xmlschema_trunc().

Variable Documentation

const char* abbr_days[]
static
Initial value:
= {
"sun", "mon", "tue", "wed",
"thu", "fri", "sat"
}

Definition at line 47 of file date_parse.c.

Referenced by day_num().

const char* abbr_months[]
static
Initial value:
= {
"jan", "feb", "mar", "apr", "may", "jun",
"jul", "aug", "sep", "oct", "nov", "dec"
}

Definition at line 52 of file date_parse.c.

Referenced by mon_num().

struct zone zones_source[]
static

Definition at line 341 of file date_parse.c.