.TCore: adjusted exception handling in CalcContext::Evaluate

git-svn-id: svn://ultimatepp.org/upp/trunk@3277 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
rylek 2011-03-12 16:08:43 +00:00
parent 9004bbc0e2
commit f80e374418
2 changed files with 12 additions and 10 deletions

View file

@ -579,22 +579,22 @@ Value CalcContext::Get(String name) const
return Value();
}
Value CalcContext::Evaluate(String expr)
Value CalcContext::TryEvaluate(String expr)
{
CalcParser parser;
try
{
CalcNodePtr cn = parser.ScanVoid(expr);
if(!cn)
return Value();
return cn->Calc(*this);
try {
return Evaluate(expr);
}
catch(Exc e)
{
catch(Exc e) {
return ErrorValue(e);
}
}
Value CalcContext::Evaluate(String expr)
{
CalcNodePtr node = CalcParser().ScanVoid(expr);
return !!node ? node->Calc(*this) : Value();
}
double CalcContext::EvaluateDouble(String expr)
{
CalcNodePtr node = CalcParser().ScanVoid(expr);

View file

@ -342,6 +342,8 @@ public:
CalcContext(const CalcContext& context, int);
virtual ~CalcContext();
Value TryEvaluate(String expr);
Value Evaluate(String expr);
double EvaluateDouble(String expr);
String EvaluateString(String expr);