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