diff options
author | aamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-02-18 18:11:37 +0000 |
---|---|---|
committer | aamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-02-18 18:11:37 +0000 |
commit | 3c2a6c6442f850ef3f991de8069429b96bb1a75e (patch) | |
tree | 9317a9b8aec1752b7861f30a518c31b44e85a59d /ext/strscan | |
parent | 91bf3ef3369ca7081d7b168b88eafb003b2733fc (diff) |
* ext/strscan/strscan.c: synchronized with main trunk (rev 1.11).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5777 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/strscan')
-rw-r--r-- | ext/strscan/strscan.c | 101 |
1 files changed, 84 insertions, 17 deletions
diff --git a/ext/strscan/strscan.c b/ext/strscan/strscan.c index 43e2832c9a..e33f610c71 100644 --- a/ext/strscan/strscan.c +++ b/ext/strscan/strscan.c @@ -2,7 +2,7 @@ strscan.c - Copyright (c) 1999-2003 Minero Aoki <aamine@loveruby.net> + Copyright (c) 1999-2004 Minero Aoki This program is free software. You can distribute/modify this program under the terms of @@ -80,6 +80,7 @@ static VALUE strscan_initialize _((int argc, VALUE *argv, VALUE self)); static VALUE strscan_s_mustc _((VALUE self)); static VALUE strscan_terminate _((VALUE self)); +static VALUE strscan_clear _((VALUE self)); static VALUE strscan_get_string _((VALUE self)); static VALUE strscan_set_string _((VALUE self, VALUE str)); static VALUE strscan_concat _((VALUE self, VALUE str)); @@ -101,10 +102,13 @@ static VALUE strscan_search_full _((VALUE self, VALUE re, static void adjust_registers_to_matched _((struct strscanner *p)); static VALUE strscan_getch _((VALUE self)); static VALUE strscan_get_byte _((VALUE self)); +static VALUE strscan_getbyte _((VALUE self)); static VALUE strscan_peek _((VALUE self, VALUE len)); +static VALUE strscan_peep _((VALUE self, VALUE len)); static VALUE strscan_unscan _((VALUE self)); static VALUE strscan_bol_p _((VALUE self)); static VALUE strscan_eos_p _((VALUE self)); +static VALUE strscan_empty_p _((VALUE self)); static VALUE strscan_rest_p _((VALUE self)); static VALUE strscan_matched_p _((VALUE self)); static VALUE strscan_matched _((VALUE self)); @@ -268,6 +272,14 @@ strscan_terminate(self) * Returns the string being scanned. */ static VALUE +strscan_clear(self) + VALUE self; +{ + rb_warning("StringScanner#clear is obsolete; use #terminate instead"); + return strscan_terminate(self); +} + +static VALUE strscan_get_string(self) VALUE self; { @@ -707,6 +719,14 @@ strscan_get_byte(self) p->prev + p->regs.end[0]); } +static VALUE +strscan_getbyte(self) + VALUE self; +{ + rb_warning("StringScanner#getbyte is obsolete; use #get_byte instead"); + return strscan_get_byte(self); +} + /* * call-seq: peek(len) * @@ -748,6 +768,14 @@ strscan_peek(self, vlen) * s.unscan # ScanError: cannot unscan: prev match had failed */ static VALUE +strscan_peep(self, vlen) + VALUE self, vlen; +{ + rb_warning("StringScanner#peep is obsolete; use #peek instead"); + return strscan_peek(self, vlen); +} + +static VALUE strscan_unscan(self) VALUE self; { @@ -788,6 +816,13 @@ strscan_bol_p(self) /* * Returns +true+ if the scan pointer is at the end of the string. + * + * s = StringScanner.new('test string') + * p s.eos? # => false + * s.scan(/test/) + * p s.eos? # => false + * s.terminate + * p s.eos? # => true */ static VALUE strscan_eos_p(self) @@ -803,6 +838,18 @@ strscan_eos_p(self) } /* + * Equivalent to #eos?. + * This method is obsolete, use #eos? instead. + */ +static VALUE +strscan_empty_p(self) + VALUE self; +{ + rb_warning("StringScanner#empty? is obsolete; use #eos? instead"); + return strscan_eos_p(self); +} + +/* * Returns true iff there is more data in the string. See #eos?. * This method is obsolete; use #eos? instead. * @@ -888,6 +935,18 @@ strscan_matched_size(self) } /* + * Equivalent to #matched_size. + * This method is obsolete; use #matched_size instead. + */ +static VALUE +strscan_matchedsize(self) + VALUE self; +{ + rb_warning("StringScanner#matchedsize is obsolete; use #matched_size instead"); + return strscan_matched_size(self); +} + +/* * call-seq: [](n) * * Return the n-th subgroup in the most recent match. @@ -966,7 +1025,7 @@ strscan_post_match(self) /* * Returns the "rest" of the string (i.e. everything after the scan pointer). - * If there is no more data, it returns <tt>""</tt>. + * If there is no more data (eos? = true), it returns <tt>""</tt>. */ static VALUE strscan_rest(self) @@ -1000,6 +1059,18 @@ strscan_rest_size(self) return INT2FIX(i); } +/* + * <tt>s.restsize</tt> is equivalent to <tt>s.rest_size</tt>. + * This method is obsolete; use #rest_size instead. + */ +static VALUE +strscan_restsize(self) + VALUE self; +{ + rb_warning("StringScanner#restsize is obsolete; use #rest_size instead"); + return strscan_rest_size(self); +} + #define INSPECT_LENGTH 5 #define BUFSIZE 256 @@ -1021,7 +1092,6 @@ strscan_inspect(self) struct strscanner *p; char buf[BUFSIZE]; long len; - VALUE result; VALUE a, b; Data_Get_Struct(self, struct strscanner, p); @@ -1200,16 +1270,13 @@ void Init_strscan() { ID id_scanerr = rb_intern("ScanError"); - volatile VALUE tmp; - - if (rb_const_defined(rb_cObject, id_scanerr)) { - ScanError = rb_const_get(rb_cObject, id_scanerr); - } - else { - ScanError = rb_define_class_id(id_scanerr, rb_eStandardError); - } + VALUE tmp; StringScanner = rb_define_class("StringScanner", rb_cObject); + ScanError = rb_define_class_under(StringScanner, "Error", rb_eStandardError); + if (!rb_const_defined(rb_cObject, id_scanerr)) { + rb_const_set(rb_cObject, id_scanerr, ScanError); + } tmp = rb_str_new2(STRSCAN_VERSION); rb_obj_freeze(tmp); rb_const_set(StringScanner, rb_intern("Version"), tmp); @@ -1222,7 +1289,7 @@ Init_strscan() rb_define_singleton_method(StringScanner, "must_C_version", strscan_s_mustc, 0); rb_define_method(StringScanner, "reset", strscan_reset, 0); rb_define_method(StringScanner, "terminate", strscan_terminate, 0); - rb_define_method(StringScanner, "clear", strscan_terminate, 0); + rb_define_method(StringScanner, "clear", strscan_clear, 0); rb_define_method(StringScanner, "string", strscan_get_string, 0); rb_define_method(StringScanner, "string=", strscan_set_string, 1); rb_define_method(StringScanner, "concat", strscan_concat, 1); @@ -1246,29 +1313,29 @@ Init_strscan() rb_define_method(StringScanner, "getch", strscan_getch, 0); rb_define_method(StringScanner, "get_byte", strscan_get_byte, 0); - rb_define_method(StringScanner, "getbyte", strscan_get_byte, 0); + rb_define_method(StringScanner, "getbyte", strscan_getbyte, 0); rb_define_method(StringScanner, "peek", strscan_peek, 1); - rb_define_method(StringScanner, "peep", strscan_peek, 1); + rb_define_method(StringScanner, "peep", strscan_peep, 1); rb_define_method(StringScanner, "unscan", strscan_unscan, 0); rb_define_method(StringScanner, "beginning_of_line?", strscan_bol_p, 0); rb_define_method(StringScanner, "bol?", strscan_bol_p, 0); rb_define_method(StringScanner, "eos?", strscan_eos_p, 0); - rb_define_method(StringScanner, "empty?", strscan_eos_p, 0); + rb_define_method(StringScanner, "empty?", strscan_empty_p, 0); rb_define_method(StringScanner, "rest?", strscan_rest_p, 0); rb_define_method(StringScanner, "matched?", strscan_matched_p, 0); rb_define_method(StringScanner, "matched", strscan_matched, 0); rb_define_method(StringScanner, "matched_size", strscan_matched_size, 0); - rb_define_method(StringScanner, "matchedsize", strscan_matched_size, 0); + rb_define_method(StringScanner, "matchedsize", strscan_matchedsize, 0); rb_define_method(StringScanner, "[]", strscan_aref, 1); rb_define_method(StringScanner, "pre_match", strscan_pre_match, 0); rb_define_method(StringScanner, "post_match", strscan_post_match, 0); rb_define_method(StringScanner, "rest", strscan_rest, 0); rb_define_method(StringScanner, "rest_size", strscan_rest_size, 0); - rb_define_method(StringScanner, "restsize", strscan_rest_size, 0); + rb_define_method(StringScanner, "restsize", strscan_restsize, 0); rb_define_method(StringScanner, "inspect", strscan_inspect, 0); } |