Annotation of parser3/src/classes/root.C, revision 1.7
1.1 paf 1: /*
1.7 ! paf 2: $Id: root.C,v 1.6 2001/03/09 08:19:46 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:
1.7 ! paf 21: void initialize_root_class(Pool& pool, VClass& vclass) {
1.1 paf 22: String& IF_NAME=*new(pool) String(pool);
23: IF_NAME.APPEND_CONST("if");
24:
25: Method& IF_METHOD=*new(pool) Method(pool,
26: IF_NAME,
1.6 paf 27: 2, 3, // min,max numbered_params_count
1.1 paf 28: 0/*params_names*/, 0/*locals_names*/,
29: 0/*parser_code*/, _if
30: );
31:
1.7 ! paf 32: vclass.add_method(IF_NAME, IF_METHOD);
1.1 paf 33: }
E-mail: