# include "lclintMacros.nf"
# include "basic.h"
-# include "mtincludes.h"
metaStateExpression
metaStateExpression_create (/*@only@*/ metaStateSpecifier spec)
}
}
+metaStateExpression metaStateExpression_copy (metaStateExpression m)
+{
+ if (m == NULL) return NULL;
+
+ if (m->rest != NULL)
+ {
+ return metaStateExpression_createMerge (metaStateSpecifier_copy (m->spec),
+ metaStateExpression_copy (m->rest));
+
+ }
+ else
+ {
+ return metaStateExpression_create (metaStateSpecifier_copy (m->spec));
+ }
+}
+
+metaStateSpecifier metaStateExpression_getSpecifier (metaStateExpression m)
+{
+ llassert (m != NULL);
+ return m->spec;
+}
+
+bool metaStateExpression_isMerge (metaStateExpression m)
+{
+ return (metaStateExpression_isDefined (m)
+ && metaStateExpression_isDefined (m->rest));
+}
+
+/*@observer@*/ metaStateExpression metaStateExpression_getRest (metaStateExpression m)
+{
+ llassert (m != NULL);
+ return m->rest;
+}
+
void metaStateExpression_free (/*@only@*/ metaStateExpression m)
{
llassert (m != NULL);
sfree (m);
}
-