Diff for /parser3/src/classes/int.C between versions 1.53 and 1.57

version 1.53, 2004/02/11 15:33:12 version 1.57, 2007/04/23 10:30:09
Line 1 Line 1
 /** @file  /** @file
         Parser: @b int parser class.          Parser: @b int parser class.
   
         Copyright (c) 2001-2004 ArtLebedev Group (http://www.artlebedev.com)          Copyright (c) 2001-2005 ArtLebedev Group (http://www.artlebedev.com)
         Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)          Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
 */  */
   
Line 13  static const char * const IDENT_INT_C="$ Line 13  static const char * const IDENT_INT_C="$
 #include "pa_request.h"  #include "pa_request.h"
 #include "pa_vdouble.h"  #include "pa_vdouble.h"
 #include "pa_vint.h"  #include "pa_vint.h"
   #include "pa_vbool.h"
   
 // externs  // externs
   
Line 34  DECLARE_CLASS_VAR(int, new MInt, 0); Line 35  DECLARE_CLASS_VAR(int, new MInt, 0);
 // methods  // methods
   
 static void _int(Request& r, MethodParams& params) {  static void _int(Request& r, MethodParams& params) {
         // just checking (default) syntax validity, never really using it  here, just for string.int compatibility          // just checking (default) syntax validity, never really using it here, just for string.int compatibility
         if(params.count()>0)          if(params.count()>0)
                 params.as_junction(0, "default must be int");                  params.as_int(0, "default must be int", r);
   
         VInt& vint=GET_SELF(r, VInt);          VInt& vint=GET_SELF(r, VInt);
         r.write_no_lang(*new VInt(vint.get_int()));          r.write_no_lang(*new VInt(vint.get_int()));
 }  }
   
 static void _double(Request& r, MethodParams& params) {  static void _double(Request& r, MethodParams& params) {
         // just checking (default) syntax validity, never really using it  here, just for string.doube compatibility          // just checking (default) syntax validity, never really using it here, just for string.double compatibility
         if(params.count()>0)          if(params.count()>0)
                 params.as_junction(0, "default must be double");                  params.as_double(0, "default must be double", r);
   
         VInt& vint=GET_SELF(r, VInt);          VInt& vint=GET_SELF(r, VInt);
         r.write_no_lang(*new VDouble(vint.as_double()));          r.write_no_lang(*new VDouble(vint.as_double()));
 }  }
   
   static void _bool(Request& r, MethodParams& params) {
           // just checking (default) syntax validity, never really using it here, just for string.bool compatibility
           if(params.count()>0)
                   params.as_bool(0, "default must be bool", r);
   
           VInt& vint=GET_SELF(r, VInt);
           r.write_no_lang(*new VBool(vint.as_bool()));
   }
   
 typedef void (*vint_op_func_ptr)(VInt& vint, double param);  typedef void (*vint_op_func_ptr)(VInt& vint, double param);
   
 static void __inc(VInt& vint, double param) { vint.inc((int)param); }  static void __inc(VInt& vint, double param) { vint.inc((int)param); }
Line 86  static void _sql(Request& r, MethodParam Line 96  static void _sql(Request& r, MethodParam
                 if(default_code)                  if(default_code)
                         val=r.process_to_value(*default_code).as_int();                          val=r.process_to_value(*default_code).as_int();
                 else {                  else {
                         throw Exception("parser.runtime",                          throw Exception(PARSER_RUNTIME,
                                 0,                                  0,
                                 "produced no result, but no default option specified");                                  "produced no result, but no default option specified");
                 }                  }
Line 102  MInt::MInt(): Methoded("int") { Line 112  MInt::MInt(): Methoded("int") {
         // ^int.double[]          // ^int.double[]
         add_native_method("double", Method::CT_DYNAMIC, _double, 0, 1);          add_native_method("double", Method::CT_DYNAMIC, _double, 0, 1);
   
           // ^double.bool[]
           add_native_method("bool", Method::CT_DYNAMIC, _bool, 0, 1);
   
         // ^int.inc[]           // ^int.inc[] 
         // ^int.inc[offset]          // ^int.inc[offset]
         add_native_method("inc", Method::CT_DYNAMIC, _inc, 0, 1);          add_native_method("inc", Method::CT_DYNAMIC, _inc, 0, 1);

Removed from v.1.53  
changed lines
  Added in v.1.57


E-mail: