Advertisement
Aslai

var.h

Jul 11th, 2012
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 10.12 KB | None | 0 0
  1. #pragma once
  2. #include<stdio.h>
  3. #include<string.h>
  4. #include<stdarg.h>
  5. #include<stdlib.h>
  6. #include<ctype.h>
  7. #include<map>
  8. #include<math.h>
  9. //#ifdef VAR_THROW_EXCEPT
  10. #define THROW(a) throw( a )
  11. //#else
  12. //#define THROW(a)
  13. //#endif
  14.  
  15. #define DBL 1
  16. #define STR 2
  17.  
  18.  
  19.  
  20. struct var{
  21.     private:
  22.     public:
  23.         char type;
  24.         bool set;
  25.         void* mydata;
  26.         int datalen;
  27.         std::map<var,var> data;
  28.     public:
  29.         bool loosematch;
  30.         ~var();
  31.         var();
  32.         var(const double val);
  33.         var(const int val);
  34.         var(const var &val);
  35.         var(const char* val);
  36.         var op_plus ( const char* val, int len ) const;
  37.         var& operator[] ( const var val );
  38.         var& operator[] ( double val );
  39.         var& operator[] ( const char* val );
  40.         var& operator[] ( int val );
  41.         var& operator= ( const var val );
  42.         var& operator= ( double val );
  43.         var& operator= ( int val );
  44.         var& operator= ( const char* val );
  45.         friend var operator + ( const var& va,  const var val  ) ;
  46.         friend var operator + ( const var& va,  double val  ) ;
  47.         friend var operator + ( const var& va,  const char* val  ) ;
  48.         friend var operator - ( const var& va,  const var val  ) ;
  49.         friend var operator - ( const var& va,  double val  ) ;
  50.         friend var operator * ( const var& va,  const var val  ) ;
  51.         friend var operator * ( const var& va,  double val  ) ;
  52.         friend var operator / ( const var& va,  const var val  ) ;
  53.         friend var operator / ( const var& va,  double val  ) ;
  54.         friend bool operator == ( const var& va,  const var val  ) ;
  55.         friend bool operator == ( const var& va,  const double val  ) ;
  56.         friend bool operator == ( const var& va,  const char* val  ) ;
  57.         friend var operator + ( const var& va   ) ;
  58.         friend var operator - ( const var& va   ) ;
  59.         friend var operator % ( const var& va,  const var val  ) ;
  60.         friend var operator % ( const var& va,  double val  ) ;
  61.         friend var& operator ++ ( var& va  );
  62.         friend var operator ++ ( var& va, int );
  63.         friend var& operator -- ( var& va  );
  64.         friend var operator -- ( var& va, int );
  65.         friend bool operator != ( const var& va,  const var val  ) ;
  66.         friend bool operator != ( const var& va,  double val  ) ;
  67.         friend bool operator != ( const var& va,  const char* val  ) ;
  68.         friend bool operator > ( const var& va,  const var val  ) ;
  69.         friend bool operator > ( const var& va,  double val  ) ;
  70.         friend bool operator > ( const var& va,  const char* val  ) ;
  71.         friend bool operator < ( const var& va,  const var val  ) ;
  72.         friend bool operator < ( const var& va,  double val  ) ;
  73.         friend bool operator < ( const var& va,  const char* val  ) ;
  74.         friend bool operator >= ( const var& va,  const var val  ) ;
  75.         friend bool operator >= ( const var& va,  double val  ) ;
  76.         friend bool operator >= ( const var& va,  const char* val  ) ;
  77.         friend bool operator <= ( const var& va,  const var val  ) ;
  78.         friend bool operator <= ( const var& va,  double val  ) ;
  79.         friend bool operator <= ( const var& va,  const char* val  ) ;
  80.         friend bool operator ! ( const var& va  ) ;
  81.         friend bool operator && ( const var& va,  const var val  ) ;
  82.         friend bool operator && ( const var& va,  double val  ) ;
  83.         friend bool operator || ( const var& va,  const var val  ) ;
  84.         friend bool operator || ( const var& va,  double val  ) ;
  85.         friend var operator ~ ( const var& va  ) ;
  86.         friend var operator & ( const var& va,  const var val  ) ;
  87.         friend var operator & ( const var& va,  double val  ) ;
  88.         friend var operator | ( const var& va,  const var val  ) ;
  89.         friend var operator | ( const var& va,  double val  ) ;
  90.         friend var operator ^ ( const var& va,  const var val  ) ;
  91.         friend var operator ^ ( const var& va,  double val  ) ;
  92.         friend var operator << ( const var& va,  const var val  ) ;
  93.         friend var operator << ( const var& va,  double val  ) ;
  94.         friend var operator >> ( const var& va,  const var val  ) ;
  95.         friend var operator >> ( const var& va,  double val  ) ;
  96.         friend var operator + (  double val  , const var& va) ;
  97.         friend var operator + (  const char* val  , const var& va) ;
  98.         friend var operator - (  double val  , const var& va) ;
  99.         friend var operator * (  double val  , const var& va) ;
  100.         friend var operator / (  double val  , const var& va) ;
  101.         friend bool operator == (  const double val  , const var& va) ;
  102.         friend bool operator == (  const char* val  , const var& va) ;
  103.         friend var operator % (  double val  , const var& va) ;
  104.         friend bool operator != (  double val  , const var& va) ;
  105.         friend bool operator != (  const char* val  , const var& va) ;
  106.         friend bool operator > (  double val  , const var& va) ;
  107.         friend bool operator > (  const char* val  , const var& va) ;
  108.         friend bool operator < (  double val  , const var& va) ;
  109.         friend bool operator < (  const char* val  , const var& va) ;
  110.         friend bool operator >= (  double val  , const var& va) ;
  111.         friend bool operator >= (  const char* val  , const var& va) ;
  112.         friend bool operator <= (  double val  , const var& va) ;
  113.         friend bool operator <= (  const char* val  , const var& va) ;
  114.         friend bool operator && (  double val  , const var& va) ;
  115.         friend bool operator || (  double val  , const var& va) ;
  116.         friend var operator & (  double val  , const var& va) ;
  117.         friend var operator | (  double val  , const var& va) ;
  118.         friend var operator ^ (  double val  , const var& va) ;
  119.         friend var operator << (  double val  , const var& va) ;
  120.         friend var operator >> (  double val  , const var& va) ;
  121.         friend var& operator += ( var& va,  const var val  );
  122.         friend var& operator += ( var& va,  double val  );
  123.         friend var& operator += ( var& va,  const char* val  );
  124.         friend var& operator -= ( var& va,  const var val  );
  125.         friend var& operator -= ( var& va,  double val  );
  126.         friend var& operator *= ( var& va,  const var val  );
  127.         friend var& operator *= ( var& va,  double val  );
  128.         friend var& operator /= ( var& va,  const var val  );
  129.         friend var& operator /= ( var& va,  double val  );
  130.         friend var& operator %= ( var& va,  const var val  );
  131.         friend var& operator %= ( var& va,  double val  );
  132.         friend var& operator &= ( var& va,  const var val  );
  133.         friend var& operator &= ( var& va,  double val  );
  134.         friend var& operator |= ( var& va,  const var val  );
  135.         friend var& operator |= ( var& va,  double val  );
  136.         friend var& operator ^= ( var& va,  const var val  );
  137.         friend var& operator ^= ( var& va,  double val  );
  138.         friend var& operator <<= ( var& va,  const var val  );
  139.         friend var& operator <<= ( var& va,  double val  );
  140.         friend var& operator >>= ( var& va,  const var val  );
  141.         friend var& operator >>= ( var& va,  double val  );
  142.         friend var operator + ( const var& va,  int val  ) ;
  143.         friend var operator - ( const var& va,  int val  ) ;
  144.         friend var operator * ( const var& va,  int val  ) ;
  145.         friend var operator / ( const var& va,  int val  ) ;
  146.         friend bool operator == ( const var& va,  int val  ) ;
  147.         friend var operator % ( const var& va,  int val  ) ;
  148.         friend bool operator != ( const var& va,  int val  ) ;
  149.         friend bool operator > ( const var& va,  int val  ) ;
  150.         friend bool operator < ( const var& va,  int val  ) ;
  151.         friend bool operator >= ( const var& va,  int val  ) ;
  152.         friend bool operator <= ( const var& va,  int val  ) ;
  153.         friend bool operator && ( const var& va,  int val  ) ;
  154.         friend bool operator || ( const var& va,  int val  ) ;
  155.         friend var operator & ( const var& va,  int val  ) ;
  156.         friend var operator | ( const var& va,  int val  ) ;
  157.         friend var operator ^ ( const var& va,  int val  ) ;
  158.         friend var operator << ( const var& va,  int val  ) ;
  159.         friend var operator >> ( const var& va,  int val  ) ;
  160.         friend var operator + (  int val  , const var& va) ;
  161.         friend var operator - (  int val  , const var& va) ;
  162.         friend var operator * (  int val  , const var& va) ;
  163.         friend var operator / (  int val  , const var& va) ;
  164.         friend bool operator == (  int val  , const var& va) ;
  165.         friend var operator % (  int val  , const var& va) ;
  166.         friend bool operator != (  int val  , const var& va) ;
  167.         friend bool operator > (  int val  , const var& va) ;
  168.         friend bool operator < (  int val  , const var& va) ;
  169.         friend bool operator >= (  int val  , const var& va) ;
  170.         friend bool operator <= (  int val  , const var& va) ;
  171.         friend bool operator && (  int val  , const var& va) ;
  172.         friend bool operator || (  int val  , const var& va) ;
  173.         friend var operator & (  int val  , const var& va) ;
  174.         friend var operator | (  int val  , const var& va) ;
  175.         friend var operator ^ (  int val  , const var& va) ;
  176.         friend var operator << (  int val  , const var& va) ;
  177.         friend var operator >> (  int val  , const var& va) ;
  178.         friend var& operator += ( var& va,  int val  );
  179.         friend var& operator -= ( var& va,  int val  );
  180.         friend var& operator *= ( var& va,  int val  );
  181.         friend var& operator /= ( var& va,  int val  );
  182.         friend var& operator %= ( var& va,  int val  );
  183.         friend var& operator &= ( var& va,  int val  );
  184.         friend var& operator |= ( var& va,  int val  );
  185.         friend var& operator ^= ( var& va,  int val  );
  186.         friend var& operator <<= ( var& va,  int val  );
  187.         friend var& operator >>= ( var& va,  int val  );
  188.  
  189.         //var& operator()(...);
  190.         operator bool() const;
  191.         operator char*() const;
  192.         operator double() const;
  193.         operator long() const;
  194.  
  195. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement