Annotation of parser3/src/types/pa_wcontext.h, revision 1.1
1.1 ! paf 1: /*
! 2: Parser
! 3: Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com)
! 4: Author: Alexander Petrosyan <paf@design.ru>
! 5:
! 6: $Id: pa_wcontext.h,v 1.28 2001/03/10 16:34:37 paf Exp $
! 7: */
! 8:
! 9: #ifndef PA_WCONTEXT_H
! 10: #define PA_WCONTEXT_H
! 11:
! 12: #include "pa_value.h"
! 13: #include "pa_vstring.h"
! 14: #include "pa_vhash.h"
! 15:
! 16: class Request;
! 17:
! 18: class WContext : public Value {
! 19: friend Request;
! 20: public: // Value
! 21:
! 22: // all: for error reporting after fail(), etc
! 23: const char *type() const { return "wcontext"; }
! 24: // WContext: accumulated fstring
! 25: const String *get_string() { return &fstring; };
! 26:
! 27: // WContext: none yet | transparent
! 28: VClass *get_class() { return fvalue?fvalue->get_class():0; }
! 29: // wcontext: transparent
! 30: VAliased *get_aliased() { return fvalue?fvalue->get_aliased():0; }
! 31:
! 32: public: // WContext
! 33:
! 34: // appends a fstring to result
! 35: virtual void write(const String& astring, String::Untaint_lang lang);
! 36:
! 37: // if value is VString writes fstring,
! 38: // else writes Value; raises an error if already
! 39: virtual void write(Value& avalue, String::Untaint_lang lang);
! 40:
! 41: public: // usage
! 42:
! 43: WContext(Pool& apool, Value *avalue, bool aconstructing) : Value(apool),
! 44: fvalue(avalue),
! 45: fconstructing(aconstructing),
! 46: fstring(*new(apool) String(apool)) {
! 47: }
! 48:
! 49: bool constructing() { return fconstructing; }
! 50:
! 51: // retrives the resulting value
! 52: // that can be VString if value==0 or the Value object
! 53: Value *result() const {
! 54: return fvalue?fvalue:NEW VString(fstring);
! 55: }
! 56:
! 57: protected:
! 58: Value *fvalue;
! 59: private:
! 60: bool fconstructing;
! 61: String& fstring;
! 62: };
! 63:
! 64: #endif
E-mail: