Annotation of parser3/src/classes/root.C, revision 1.9
1.1 paf 1: /*
1.9 ! paf 2: $Id: root.C,v 1.8 2001/03/10 11:18:13 paf Exp $
1.1 paf 3: */
4:
5: #include "pa_request.h"
1.8 paf 6: #include "_root.h"
1.1 paf 7:
1.6 paf 8: static void _if(Request& r, Array *params) {
1.2 paf 9: bool condition=
10: r.autocalc(
1.6 paf 11: *static_cast<Value *>(params->get(0)),
1.2 paf 12: false/*don't make it string*/).get_bool();
1.6 paf 13: if(condition) {
14: Value& value=r.autocalc(*static_cast<Value *>(params->get(1)));
1.9 ! paf 15: r.wcontext->write(value, String::Untaint_lang::PASS_APPENDED);
1.6 paf 16: } else if(params->size()==3) {
17: Value& value=r.autocalc(*static_cast<Value *>(params->get(2)));
1.9 ! paf 18: r.wcontext->write(value, String::Untaint_lang::PASS_APPENDED);
1.6 paf 19: }
1.1 paf 20: }
21:
1.7 paf 22: void initialize_root_class(Pool& pool, VClass& vclass) {
1.1 paf 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:
1.7 paf 33: vclass.add_method(IF_NAME, IF_METHOD);
1.1 paf 34: }
E-mail: