--- parser3/src/classes/Attic/random.C 2001/04/02 08:49:38 1.2 +++ parser3/src/classes/Attic/random.C 2001/04/05 13:19:39 1.4 @@ -5,7 +5,7 @@ Author: Alexander Petrosyan (http://design.ru/paf) - $Id: random.C,v 1.2 2001/04/02 08:49:38 paf Exp $ + $Id: random.C,v 1.4 2001/04/05 13:19:39 paf Exp $ */ #include @@ -26,10 +26,13 @@ VStateless_class *random_class; static void _generate(Request& r, const String& method_name, Array *params) { Pool& pool=r.pool(); - uint max=params->size()? - (uint)(r.process(*static_cast(params->get(0)))).as_double():0; + Value& range=*static_cast(params->get(0)); + // (this body type) + r.fail_if_junction_(false, range, method_name, "range must be expression"); + + uint max=params->size()?(uint)r.process(range).as_double():0; if(max<=1) - RTHROW(0, 0, + PTHROW(0, 0, &method_name, "bad range [0..%u]", max); @@ -44,5 +47,5 @@ void initialize_random_class(Pool& pool, // ^random.generate[] // ^random.generate(range) - vclass.add_native_method("generate", Method::CT_STATIC, _generate, 0, 1); + vclass.add_native_method("generate", Method::CT_STATIC, _generate, 1, 1); }