Annotation of parser3/src/types/pa_wcontext.C, revision 1.2
1.1 paf 1: /*
2: Parser
3: Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com)
1.2 ! paf 4: Author: Alexander Petrosyan <paf@design.ru> (http://design.ru/paf)
1.1 paf 5:
1.2 ! paf 6: $Id: pa_wcontext.C,v 1.1 2001/03/11 07:52:46 paf Exp $
1.1 paf 7: */
8:
9: #include "pa_wcontext.h"
10: #include "pa_exception.h"
11:
12: // appends a fstring to result
13: void WContext::write(const String& astring, String::Untaint_lang lang) {
14: fstring.append(astring, lang);
15: }
16:
17: // if value is VString writes fstring,
18: // else writes Value; raises an error if already
19: void WContext::write(Value& avalue, String::Untaint_lang lang) {
20: const String *fstring=avalue.get_string();
21: if(fstring)
22: write(*fstring, lang);
23: else
24: if(fvalue) // already have value?
25: THROW(0,0, // must not construct twice
26: &avalue.name(),
27: "(%s) illegal assignment attempt to '%s' (%s), use constructor instead",
28: avalue.type(), fvalue->name().cstr(), fvalue->type());
29: else
30: fvalue=&avalue;
31: }
32:
E-mail: