--- parser3/src/classes/op.C 2001/04/28 13:24:57 1.11 +++ parser3/src/classes/op.C 2001/05/08 06:13:00 1.17 @@ -5,7 +5,7 @@ Author: Alexander Petrosyan (http://design.ru/paf) - $Id: op.C,v 1.11 2001/04/28 13:24:57 paf Exp $ + $Id: op.C,v 1.17 2001/05/08 06:13:00 paf Exp $ */ #include "classes.h" @@ -172,7 +172,6 @@ static void _use(Request& r, const Strin r.use_file(r.absolute(vfile.as_string())); } -/// ^for[i;from-number;to-number-inclusive]{code}[delim] static void _for(Request& r, const String& method_name, MethodParams *params) { Pool& pool=r.pool(); const String& var_name=r.process(params->get(0)).as_string(); @@ -203,11 +202,11 @@ static void _for(Request& r, const Strin } } -static void _eval(Request& r, const String&, MethodParams *params) { +static void _eval(Request& r, const String& method_name, MethodParams *params) { Value& expr=params->get_junction(0, "need expression"); // evaluate expresion Value *result=r.process(expr, - 0/*no name*/, + 0/*no name YET*/, true/*don't intercept string*/).as_expr_result(); if(params->size()==2) { Value& fmt=params->get_no_junction(1, "fmt must not be code"); @@ -217,6 +216,7 @@ static void _eval(Request& r, const Stri string.APPEND_CONST(format(pool, result->as_double(), fmt.as_string().cstr())); result=new(pool) VString(string); } + result->set_name(method_name); r.write_no_lang(*result); } @@ -225,14 +225,14 @@ typedef double (*math_one_double_op_func static double round(double op) { return floor(op+0.5); } static double sign(double op) { return op > 0 ? 1 : ( op < 0 ? -1 : 0 ); } -static void double_one_op( - Request& r, - const String& method_name, MethodParams *params, - math_one_double_op_func_ptr func) { +static void double_one_op(Request& r, + const String& method_name, MethodParams *params, + math_one_double_op_func_ptr func) { Pool& pool=r.pool(); Value& param=params->get_junction(0, "parameter must be expression"); Value& result=*new(pool) VDouble(pool, (*func)(r.process(param).as_double())); + result.set_name(method_name); r.write_no_lang(result); } @@ -256,7 +256,6 @@ static void _sign(Request& r, const Stri double_one_op(r, method_name, params, &sign); } -/// ^connect[protocol://user:pass@host[:port]/database]{code with ^sql-s} static void _connect(Request& r, const String&, MethodParams *params) { Pool& pool=r.pool();