Annotation of parser3/src/classes/root.C, revision 1.6
1.1 paf 1: /*
1.6 ! paf 2: $Id: root.C,v 1.5 2001/03/09 04:47:26 paf Exp $
1.1 paf 3: */
4:
5: #include "pa_request.h"
6:
1.6 ! paf 7: static void _if(Request& r, Array *params) {
1.2 paf 8: bool condition=
9: r.autocalc(
1.6 ! paf 10: *static_cast<Value *>(params->get(0)),
1.2 paf 11: false/*don't make it string*/).get_bool();
1.6 ! paf 12: if(condition) {
! 13: Value& value=r.autocalc(*static_cast<Value *>(params->get(1)));
! 14: r.wcontext->write(value);
! 15: } else if(params->size()==3) {
! 16: Value& value=r.autocalc(*static_cast<Value *>(params->get(2)));
! 17: r.wcontext->write(value);
! 18: }
1.1 paf 19: }
20:
21: void construct_root_class(Request& request) {
22: Pool& pool=request.pool();
23: String& IF_NAME=*new(pool) String(pool);
24: IF_NAME.APPEND_CONST("if");
25:
26: Method& IF_METHOD=*new(pool) Method(pool,
27: IF_NAME,
1.6 ! paf 28: 2, 3, // min,max numbered_params_count
1.1 paf 29: 0/*params_names*/, 0/*locals_names*/,
30: 0/*parser_code*/, _if
31: );
32:
33: request.root_class.add_method(IF_NAME, IF_METHOD);
34: }
E-mail: