|
|
| 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 |