]> andersk Git - splint.git/blobdiff - src/metaStateExpression.c
noexpand always false.
[splint.git] / src / metaStateExpression.c
index 5b0aa398a08e5a0e8cfc0ea717cfe7774f6d993c..5d929552eb030f96223e738b3822d5393b933738 100644 (file)
@@ -1,6 +1,6 @@
 /*
-** LCLint - annotation-assisted static program checker
-** Copyright (C) 1994-2001 University of Virginia,
+** Splint - annotation-assisted static program checker
+** Copyright (C) 1994-2003 University of Virginia,
 **         Massachusetts Institute of Technology
 **
 ** This program is free software; you can redistribute it and/or modify it
 ** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
 ** MA 02111-1307, USA.
 **
-** For information on lclint: lclint-request@cs.virginia.edu
-** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For information on splint: info@splint.org
+** To report a bug: splint-bug@splint.org
+** For more information: http://www.splint.org
 */
 /*
 ** metaStateExpression.c
 */
 
-# include "lclintMacros.nf"
+# include "splintMacros.nf"
 # include "basic.h"
-# include "mtincludes.h"
 
 metaStateExpression 
 metaStateExpression_create (/*@only@*/ metaStateSpecifier spec)
@@ -64,6 +63,40 @@ cstring metaStateExpression_unparse (metaStateExpression m)
     }
 }
 
+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);
@@ -77,4 +110,3 @@ void metaStateExpression_free (/*@only@*/ metaStateExpression m)
   sfree (m);
 }
 
-
This page took 0.054988 seconds and 4 git commands to generate.