Diff for /parser3/src/classes/double.C between versions 1.70 and 1.77

version 1.70, 2016/10/04 13:23:45 version 1.77, 2024/11/04 03:53:25
Line 1 Line 1
 /** @file  /** @file
         Parser: @b double parser class.          Parser: @b double parser class.
   
         Copyright (c) 2001-2015 Art. Lebedev Studio (http://www.artlebedev.com)          Copyright (c) 2001-2024 Art. Lebedev Studio (http://www.artlebedev.com)
         Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)          Authors: Konstantin Morshnev <moko@design.ru>, Alexandr Petrosian <paf@design.ru>
 */  */
   
 #include "classes.h"  #include "classes.h"
Line 34  DECLARE_CLASS_VAR(double, new MDouble); Line 34  DECLARE_CLASS_VAR(double, new MDouble);
   
 static void _int(Request& r, MethodParams&) {  static void _int(Request& r, MethodParams&) {
         VDouble& vdouble=GET_SELF(r, VDouble);          VDouble& vdouble=GET_SELF(r, VDouble);
         r.write_no_lang(*new VInt(vdouble.as_int()));          r.write(*new VInt(vdouble.as_int()));
 }  }
   
 static void _double(Request& r, MethodParams&) {  static void _double(Request& r, MethodParams&) {
         VDouble& vdouble=GET_SELF(r, VDouble);          VDouble& vdouble=GET_SELF(r, VDouble);
         r.write_no_lang(*new VDouble(vdouble.as_double()));          r.write(*new VDouble(vdouble.as_double()));
 }  }
   
 static void _bool(Request& r, MethodParams&) {  static void _bool(Request& r, MethodParams&) {
         VDouble& vdouble=GET_SELF(r, VDouble);          VDouble& vdouble=GET_SELF(r, VDouble);
         r.write_no_lang(VBool::get(vdouble.as_bool()));          r.write(VBool::get(vdouble.as_bool()));
 }  }
   
 typedef void (*vdouble_op_func_ptr)(VDouble& vdouble, double param);  typedef void (*vdouble_op_func_ptr)(VDouble& vdouble, double param);
Line 53  static void __inc(VDouble& vdouble, doub Line 53  static void __inc(VDouble& vdouble, doub
 static void __dec(VDouble& vdouble, double param) { vdouble.inc(-param); }  static void __dec(VDouble& vdouble, double param) { vdouble.inc(-param); }
 static void __mul(VDouble& vdouble, double param) { vdouble.mul(param); }  static void __mul(VDouble& vdouble, double param) { vdouble.mul(param); }
 static void __div(VDouble& vdouble, double param) { vdouble.div(param); }  static void __div(VDouble& vdouble, double param) { vdouble.div(param); }
 static void __mod(VDouble& vdouble, double param) { vdouble.mod((int)param); }  static void __mod(VDouble& vdouble, double param) { vdouble.mod(param); }
   
 static void vdouble_op(Request& r, MethodParams& params,   static void vdouble_op(Request& r, MethodParams& params, vdouble_op_func_ptr func) {
                                            vdouble_op_func_ptr func) {  
         VDouble& vdouble=GET_SELF(r, VDouble);          VDouble& vdouble=GET_SELF(r, VDouble);
         double param=params.count()?          double param=params.count() ? params.as_double(0, "param must be double", r) : 1/*used in inc/dec*/;
                         params.as_double(0, "param must be double", r):1/*used in inc/dec*/;  
         (*func)(vdouble, param);          (*func)(vdouble, param);
 }  }
   
Line 81  static void _sql(Request& r, MethodParam Line 79  static void _sql(Request& r, MethodParam
                 if(default_code)                  if(default_code)
                         val=r.process(*default_code).as_double();                          val=r.process(*default_code).as_double();
                 else {                  else {
                         throw Exception(PARSER_RUNTIME,                          throw Exception(PARSER_RUNTIME, 0, "produced no result, but no default option specified");
                                 0,  
                                 "produced no result, but no default option specified");  
                 }                  }
         r.write_no_lang(*new VDouble(val));          r.write(*new VDouble(val));
 }  }
   
 // constructor  // constructor

Removed from v.1.70  
changed lines
  Added in v.1.77


E-mail: