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: