Diff for /parser3/src/classes/int.C between versions 1.14 and 1.18

version 1.14, 2001/03/13 13:43:28 version 1.18, 2001/04/03 08:23:06
Line 1 Line 1
 /*  /** @file
         Parser          Parser: @b int parser class.
   
         Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com)          Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com)
   
         Author: Alexander Petrosyan <paf@design.ru> (http://design.ru/paf)          Author: Alexander Petrosyan <paf@design.ru> (http://design.ru/paf)
   
         $Id$          $Id$
Line 22  static void _int(Request& r, const Strin Line 24  static void _int(Request& r, const Strin
         Pool& pool=r.pool();          Pool& pool=r.pool();
         VInt *vint=static_cast<VInt *>(r.self);          VInt *vint=static_cast<VInt *>(r.self);
         Value& value=*new(pool) VInt(pool, vint->get_int());          Value& value=*new(pool) VInt(pool, vint->get_int());
         r.wcontext->write(value, String::Untaint_lang::NO /*always object, not string*/);          r.write_no_lang(value);
 }  }
   
 static void _double(Request& r, const String&, Array *) {  static void _double(Request& r, const String&, Array *) {
         Pool& pool=r.pool();          Pool& pool=r.pool();
         VInt *vint=static_cast<VInt *>(r.self);          VInt *vint=static_cast<VInt *>(r.self);
         Value& value=*new(pool) VDouble(pool, vint->get_double());          Value& value=*new(pool) VDouble(pool, vint->as_double());
         r.wcontext->write(value, String::Untaint_lang::NO /*always object, not string*/);          r.write_no_lang(value);
 }  }
   
 typedef void (*vint_op_func_ptr)(VInt& vint, double param);  typedef void (*vint_op_func_ptr)(VInt& vint, double param);
Line 47  static void vint_op(Request& r, Array *p Line 49  static void vint_op(Request& r, Array *p
                 r.process(                  r.process(
                         *static_cast<Value *>(params->get(0)),                          *static_cast<Value *>(params->get(0)),
                         0/*no name*/,                          0/*no name*/,
                         false/*don't intercept string*/).get_double():1;                          false/*don't intercept string*/).as_double():1;
         (*func)(*vint, param);          (*func)(*vint, param);
 }  }
   
Line 57  static void _mul(Request& r, const Strin Line 59  static void _mul(Request& r, const Strin
 static void _div(Request& r, const String&, Array *params) { vint_op(r, params, &__div); }  static void _div(Request& r, const String&, Array *params) { vint_op(r, params, &__div); }
 static void _mod(Request& r, const String&, Array *params) { vint_op(r, params, &__mod); }  static void _mod(Request& r, const String&, Array *params) { vint_op(r, params, &__mod); }
   
   // initialize
   
 void initialize_int_class(Pool& pool, VStateless_class& vclass) {  void initialize_int_class(Pool& pool, VStateless_class& vclass) {
         // ^int.int[]          // ^int.int[]
         vclass.add_native_method("int", _int, 0, 0);          vclass.add_native_method("int", Method::CT_DYNAMIC, _int, 0, 0);
   
         // ^int.double[]          // ^int.double[]
         vclass.add_native_method("double", _double, 0, 0);          vclass.add_native_method("double", Method::CT_DYNAMIC, _double, 0, 0);
   
         // ^int.inc[]           // ^int.inc[] 
         // ^int.inc[offset]          // ^int.inc[offset]
         vclass.add_native_method("inc", _inc, 0, 1);          vclass.add_native_method("inc", Method::CT_DYNAMIC, _inc, 0, 1);
         // ^int.dec[]           // ^int.dec[] 
         // ^int.dec[offset]          // ^int.dec[offset]
         vclass.add_native_method("dec", _dec, 0, 1);          vclass.add_native_method("dec", Method::CT_DYNAMIC, _dec, 0, 1);
         // ^int.mul[k]           // ^int.mul[k] 
         vclass.add_native_method("mul", _mul, 1, 1);          vclass.add_native_method("mul", Method::CT_DYNAMIC, _mul, 1, 1);
         // ^int.div[d]          // ^int.div[d]
         vclass.add_native_method("div", _div, 1, 1);          vclass.add_native_method("div", Method::CT_DYNAMIC, _div, 1, 1);
         // ^int.mod[offset]          // ^int.mod[offset]
         vclass.add_native_method("mod", _mod, 1, 1);          vclass.add_native_method("mod", Method::CT_DYNAMIC, _mod, 1, 1);
   
   
         // ^int.format[]          // ^int.format{format}
         vclass.add_native_method("format", _string_format, 1, 1);          vclass.add_native_method("format", Method::CT_DYNAMIC, _string_format, 1, 1);
 }  }

Removed from v.1.14  
changed lines
  Added in v.1.18


E-mail: