public CLS_Content.Value ComputeValue(CLS_Content content)
{
content.InStack(this);
List <string> depth__;
content.Record(out depth__);
try
{
ICLS_Expression expr = listParam[0];
if (expr is CLS_Expression_Block)
{
expr.ComputeValue(content);
}
else
{
content.DepthAdd();
expr.ComputeValue(content);
content.DepthRemove();
}
}
catch (Exception err)
{
bool bParse = false;
int i = 1;
while (i < listParam.Count)
{
CLS_Expression_Define def = listParam[i] as CLS_Expression_Define;
if (err.GetType() == (Type)def.value_type || err.GetType().IsSubclassOf((Type)def.value_type))
{
content.DepthAdd();
content.DefineAndSet(def.value_name, def.value_type, err);
listParam[i + 1].ComputeValue(content);
content.DepthRemove();
bParse = true;
break;
}
i += 2;
}
if (!bParse)
{
throw err;
}
}
content.Restore(depth__, this);
//while((bool)expr_continue.value);
//for 逻辑
//做数学计算
//从上下文取值
//_value = null;
content.OutStack(this);
return(null);
}