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