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: