--- parser3/src/classes/math.C 2003/01/29 09:16:14 1.24.2.1 +++ parser3/src/classes/math.C 2003/04/04 09:42:04 1.25 @@ -5,7 +5,7 @@ Author: Alexandr Petrosian (http://paf.design.ru) */ -static const char* IDENT_MATH_C="$Date: 2003/01/29 09:16:14 $"; +static const char* IDENT_MATH_C="$Date: 2003/04/04 09:42:04 $"; #include "pa_common.h" #include "pa_vint.h" @@ -24,6 +24,7 @@ static const char* IDENT_MATH_C="$Date: // defines +#define PI 3.1415926535 #define MAX_SALT 8 // class @@ -46,11 +47,11 @@ static void _random(Request& r, const St Pool& pool=r.pool(); Value& range=params->as_junction(0, "range must be expression"); - double top=r.process_to_value(range).as_double(); - if(top<=1) + double top=r.process_to_value(range).as_double(); + if(top<=0) throw Exception("parser.runtime", &method_name, - "top must be above 1(%g)", top); + "top must be above 0(%g)", top); r.write_no_lang(*new(pool) VInt(pool, _random(uint(top)))); } @@ -221,10 +222,16 @@ void MMath::configure_admin(Request&) { // global variables -VStateless_classPtr math_base_class(???); +Methoded *math_base_class; +Hash *math_consts; // creator Methoded *MMath_create(Pool& pool) { + math_consts=new(pool) Hash(pool); + math_consts->put( + *new(pool) String(pool, "PI"), + new(pool) VDouble(pool, PI)); + return math_base_class=new(pool) MMath(pool); }