diff options
Diffstat (limited to 'include/ruby')
| -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 2d29f44fc..d51bc6763 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 1876ea4d7..c28976384 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; |
