File:  [parser3project] / parser3 / src / main / Attic / pa_wcontext.C
Revision 1.9: download - view: text, annotated - select for diffs - revision graph
Sat Mar 10 12:12:51 2001 UTC (25 years, 4 months ago) by paf
Branches: MAIN
CVS tags: HEAD
tainting 0

/*
  $Id: pa_wcontext.C,v 1.9 2001/03/10 12:12:51 paf Exp $
*/

#include "pa_wcontext.h"
#include "pa_exception.h"

// appends a fstring to result
void WContext::write(const String& astring, String::Untaint_lang lang) {
	fstring.append(astring, lang);
}

// if value is VString writes fstring,
// else writes Value; raises an error if already
void WContext::write(Value& avalue, String::Untaint_lang lang) {
	const String *fstring=avalue.get_string();
	if(fstring)
		write(*fstring, lang);
	else
		if(fvalue) // already have value?
			THROW(0,0,  // must not construct twice
			&avalue.name(),
			"(%s) illegal assignment attempt to '%s' (%s), use constructor instead",
				avalue.type(), fvalue->name().cstr(), fvalue->type());
		else
			fvalue=&avalue;
}


E-mail: