diff options
author | tadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-03-16 00:23:43 +0000 |
---|---|---|
committer | tadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-03-16 00:23:43 +0000 |
commit | 6125552c27b40a8da9e162af2655feca82ac16d3 (patch) | |
tree | 8f77bc1b34603f4ce939aa4b5a77f5e8303b7df4 /include | |
parent | 2694b2f937681526550b8aabf798f033fa557049 (diff) |
both complex and rational are now builtin classes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15783 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'include')
-rw-r--r-- | include/ruby/intern.h | 20 | ||||
-rw-r--r-- | include/ruby/ruby.h | 21 |
2 files changed, 41 insertions, 0 deletions
diff --git a/include/ruby/intern.h b/include/ruby/intern.h index 2d29f44fc8..d51bc67636 100644 --- a/include/ruby/intern.h +++ b/include/ruby/intern.h @@ -117,6 +117,26 @@ VALUE rb_big_or(VALUE, VALUE); VALUE rb_big_xor(VALUE, VALUE); VALUE rb_big_lshift(VALUE, VALUE); VALUE rb_big_rshift(VALUE, VALUE); +/* rational.c */ +VALUE rb_rational_raw(VALUE, VALUE); +#define rb_rational_raw1(x) rb_rational_raw(x, INT2FIX(1)) +#define rb_rational_raw2(x,y) rb_rational_raw(x, y) +VALUE rb_rational_new(VALUE, VALUE); +#define rb_rational_new1(x) rb_rational_new(x, INT2FIX(1)) +#define rb_rational_new2(x,y) rb_rational_new(x, y) +VALUE rb_Rational(VALUE, VALUE); +#define rb_Rational1(x) rb_Rational(x, INT2FIX(1)) +#define rb_Rational2(x,y) rb_Rational(x, y) +/* complex.c */ +VALUE rb_complex_raw(VALUE, VALUE); +#define rb_complex_raw1(x) rb_complex_raw(x, INT2FIX(0)) +#define rb_complex_raw2(x,y) rb_complex_raw(x, y) +VALUE rb_complex_new(VALUE, VALUE); +#define rb_complex_new1(x) rb_complex_new(x, INT2FIX(0)) +#define rb_complex_new2(x,y) rb_complex_new(x, y) +VALUE rb_Complex(VALUE, VALUE); +#define rb_Complex1(x) rb_Complex(x, INT2FIX(0)) +#define rb_Complex2(x,y) rb_Complex(x, y) /* class.c */ VALUE rb_class_boot(VALUE); VALUE rb_class_new(VALUE); diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h index 1876ea4d71..c289763841 100644 --- a/include/ruby/ruby.h +++ b/include/ruby/ruby.h @@ -273,6 +273,11 @@ enum ruby_value_type { RUBY_T_SYMBOL = 0x14, #define T_SYMBOL RUBY_T_SYMBOL + RUBY_T_RATIONAL = 0x15, +#define T_RATIONAL RUBY_T_RATIONAL + RUBY_T_COMPLEX = 0x16, +#define T_COMPLEX RUBY_T_COMPLEX + RUBY_T_VALUES = 0x1a, #define T_VALUES RUBY_T_VALUES RUBY_T_BLOCK = 0x1b, @@ -522,6 +527,18 @@ struct RFile { struct rb_io_t *fptr; }; +struct RRational { + struct RBasic basic; + VALUE num; + VALUE den; +}; + +struct RComplex { + struct RBasic basic; + VALUE real; + VALUE image; +}; + struct RData { struct RBasic basic; void (*dmark)(void*); @@ -622,6 +639,8 @@ struct RBignum { #define RSTRUCT(obj) (R_CAST(RStruct)(obj)) #define RBIGNUM(obj) (R_CAST(RBignum)(obj)) #define RFILE(obj) (R_CAST(RFile)(obj)) +#define RRATIONAL(obj) (R_CAST(RRational)(obj)) +#define RCOMPLEX(obj) (R_CAST(RComplex)(obj)) #define RVALUES(obj) (R_CAST(RValues)(obj)) #define FL_SINGLETON FL_USER0 @@ -851,6 +870,8 @@ RUBY_EXTERN VALUE rb_cNilClass; RUBY_EXTERN VALUE rb_cNumeric; RUBY_EXTERN VALUE rb_cProc; RUBY_EXTERN VALUE rb_cRange; +RUBY_EXTERN VALUE rb_cRational; +RUBY_EXTERN VALUE rb_cComplex; RUBY_EXTERN VALUE rb_cRegexp; RUBY_EXTERN VALUE rb_cStat; RUBY_EXTERN VALUE rb_cString; |