# include "lclintMacros.nf"
# include "basic.h"
+# include "mtincludes.h"
/*@notnull@*/ metaStateInfo
metaStateInfo_create (cstring name,
res->loc = loc;
res->default_ref = stateValue_error;
res->default_parameter = stateValue_error;
+ res->default_result = stateValue_error;
llassert (stateCombinationTable_size (res->sctable)
== cstringList_size (res->valueNames));
extern int metaStateInfo_getDefaultValue (metaStateInfo info, sRef s)
{
llassert (metaStateInfo_isDefined (info));
- llassert (mtContextNode_matchesRef (metaStateInfo_getContext (info), s));
if (sRef_isParam (s))
{
return info->default_parameter;
}
+ else if (sRef_isResult (s))
+ {
+ return info->default_result;
+ }
else
{
+ llassert (mtContextNode_matchesRef (metaStateInfo_getContext (info), s));
return info->default_ref;
}
}
info->default_ref = val;
}
+void metaStateInfo_setDefaultResultValue (metaStateInfo info, int val)
+{
+ llassert (metaStateInfo_isDefined (info));
+ llassert (info->default_result == stateValue_error);
+ info->default_result = val;
+}
+
void metaStateInfo_setDefaultParamValue (metaStateInfo info, int val)
{
llassert (metaStateInfo_isDefined (info));
return info->default_ref;
}
+int metaStateInfo_getDefaultResultValue (metaStateInfo info)
+{
+ llassert (metaStateInfo_isDefined (info));
+ return info->default_result;
+}
+
int metaStateInfo_getDefaultParamValue (metaStateInfo info)
{
llassert (metaStateInfo_isDefined (info));